packages icon
java2html 1.5

by Lorenzo Bettini

This is a simple program that, given a source java file, produces an html
source with syntax highlighting.

Java2html is free software. Please see the file COPYING for details. For
documentation, please read this file. As it is a GPL program, I provide
sources (~70k), but if you don't fell like compiling it, you can download
Win32 executable (~100k) (new).

Java2html is a GNU program, so you can download it also fro GNU's ftp site:
ftp://ftp.gnu.org/gnu/java2html/

or from here:

   * Latest Version (sources, .tar.gz)
   * Latest Version (win32 executable, zipped)
   * Cygnus DLL for win32 (needed for win32 executable, zipped)

Java2html main home page is at GNU site:
http://www.gnu.org/software/java2html/java2html.html

But you may find it also at my home page:
http://infostud.dsi.unifi.it/~bettini/software/java2html/java2html.html
(Italian University)
http://w3.newnet.it/bettini/software/java2html/java2html.html

or you can also get the pacthes (see below for patching from a previous
version).

Changes in this release

   * fixed the bug of darkgreen option (which wasn't recognized) (thanx to
     Chris Mason <cjmaso@essex.ac.uk>)
   * now --tab option is documented (I had forgotten it) (thanx again Chris)
   * --enable-warnings added to configure (to enable -Wall option for
     develop.)
   * docs are installed in (prefix)/share/doc/java2html (in previous version
     the docs were not installed in the correct dir if no prefix was
     specified).

Changes in release 1.4

   * more adeherent to GNU Coding Standards.
   * getopt_long used for command line options
   * -input changed in -i or --input
   * -output changed in -o or --output
   * other options changed
   * multiple input files accepted (e.g. java2html *.java)
   * --version added
   * tags.j2h is installed in $(prefix)/share/java2html: it is first checked
     in the current dir, and otherwise in that dir.
   * 'check' added to Makefile ('test' taken away)
   * documentation is installed

see also NEWS file and ChangeLog for the complete list of changes between
versions, or old-changes.html, for previous changes.

Installation

See the file INSTALL for detailed building and installation instructions;
anyway if you're used to compiling Linux software that comes with sources
you may simply follow the usual procedure:

cd <source code main directory>
./configure
make
make install

Note: unless you specify a different install directory by --prefix option of
configure (e.g. ./configure --prefix=<your home>), you must be root to 'make
install'.

Files will be installed in the following directories:

   * Executables          -> /prefix/bin
   * docs and samples     -> /prefix/share/doc/java2html
   * conf files           -> /prefix/share/java2html

Default value for prefix is /usr/local but you may change it with --prefix
option to configure (see above).


What you need to build java2html

Actually you need nothing more than a Unix C/C++ compiler

java2html has been developed under Linux, using gcc (C++), and bison (yacc)
and flex (lex), and ported under Win32 with Cygnus C/C++ compiler, available
at http://www.cygnus.com/ (a .DLL is also distributed togheter with the
.exe: you may simply copy it in the same place of the .exe). I used the
excellent GNU Autoconf and Automake. I also used Autotools
(ftp://ftp.ugcs.caltech.edu/pub/elef/autotools) which creates a starting
source tree (according to GNU standards) with autoconf, automake starting
files, and getopt_long (for command line parsing).

Actually, unless you want to develop java2html, you don't need all these
tools to build java2html because I provide generated sources; you don't need
neither bison (yacc) nor flex (lex), for the same reason. Actually programs
that use lex generated files need to link with library libfl (or libl for
lex); anyway configuration phase can discover if this library is missing and
in that case it sets the program to link with a source file I provide. This
hack works for flex: I don't know about lex generated scanners. But, again,
this is a problem only if you develop java2html and you use lex.

Patching from a previous version

If you downloaded a pacth, say java2html-1.3-1.3.1-patch.gz (i.e. the pacth
to go from version 1.3 to version 1.3.1), cd to the directory with sources
from the previous version (java2html-1.3) and type:

gunzip -cd ../java2html-1.3-1.3.1.patch.gz | patch -p1

and restart the compilation process (if you had already run configure a
simple make will do).

Usage

java2html only does a lexical analisys of the source code, so the Java
program is assumed to be correct !

here's how to run it:

java2html --input <file (a java prog)> --output <file (an html)>

if you want a real html document, specify --doc option at the end. Otherwise
you just get some text to copy and paste in you own html pages. If you
choose -doc option the page will have a white background and your source
file name as title. --tab n option apply a substitution of tab characters
with n spaces. You also may want to specify the title of the page with
--title "my title" option (this implies -doc). Now you can also generate an
html with CSS format, by using --css "url of .css" (try some .css files
included in the package). The order of the options is not relevant.

Use Hello.java to make some test, if you want. Here's how Hello1.html,
Hello2.html, Hello3.html, Hello4.html, Hello5.html were created:

java2html -i Hello.java -o Hello1.html
java2html --input Hello.java --output Hello2.html --doc
java2html -i Hello.java -o Hello3.html --title "Happy Java with java2html :-)" --tab 3
java2html < Hello.java > Hello4.html --title "and what about CSS :-)" --css "Hello.css"
java2html < Hello.java > Hello5.html --title "Wooo... this is quite dark ;-D" --css "mono-alt.css"
java2html --doc *.java
Processed Hello.java   (creates Hello.java.html)

which can also be obtained by typing

make check

And here's the output of `java2html -help`

Usage: java2html [OPTION]... [INPUT-FILE]...
       java2html < INPUT-FILE > OUTPUT-FILE [OPTION]...

given a source java file, produces an html source with syntax highlighting.

  -v, --verbose           verbose mode on
  -d, --doc               creates html with title, header...
  -c, --css=URL           use a css for formatting (implies --doc)
  -T, --title=TITLE       give title to the html (implies --doc)
  -i, --input=FILE        input file (default standard input)
  -o, --output=FILE       output file (default standard output)
  -t, --tab=TABLEN        specify tab length (default 8)
  -V, --version           print version

As it handles standard output and input you may also run it like

cat MyFile.java | java2html | lpr

You may want to specify your options for syntax highlighting in the file
tags.j2h. If this file is not present in the current directory, some default
colors will be used. Here's the tags.j2h file that comes with this
distribution:

keyword blue b ;
type green ;
string red ;
comment brown i ;
number purple ;

as you might see the syntax of this file is quite straightforward:

   * b = bold
   * i = italics
   * u = underline

You may also specify more than on of these options separated by commas
e.g.
keyword blue u, b ;

you may see all possible colors in the file colors.html

if something goes wrong with your options try to run java2html with
--verbose option enabled

Credits

Many people sent me much feedback and some of them also sent some patches
for bug fixes and new features :-)
Here they are (if I forgot someone please mail me):

   * Marcus G. Daniels <marcusd@gnu.org> who gave me some good advices about
     GNU standards,
   * Osvaldo Pinali Doederlein <osvaldo@visionnaire.com.br> for tab option
     idea,
   * Richard Freedman <rich_freedman@chiinc.com> for feed back and bugs
     signalations
   * John Constantine <John.Constantine@mail.cc.trincoll.edu> for some great
     suggestions I'll surely apply.
   * Raymond Lambe <rlambe@morgan.ucs.mun.ca>, for quotation bug signalation
   * Robert J. Clark <clark@klgroup.com> for adding -input, -output, -title
     options
   * Hans-Peter Bischof <hpb@cs.rit.edu> for suggestions (to apply).
   * Luc Maisonobe <Luc.Maisonobe@cnes.fr> for the patch for const char * in
     order to make it work under gcc 2.95
   * Jari Korva <jari.korva@iki.fi> for the bug of \" inside a string and &
     treatme nt, and especially for adding CSS options and handling
   * Kaloian Doganov <kaloian@stones.com> for .css suggestion and for
     providing some nice .css files
   * Ziv Caspi <zivc@peach-networks.com> found the bug of \\ in chars
   * Chris Mason <cjmaso@essex.ac.uk> found the darkgreen bug, and that
     --tab was not documented

See also THANKS file and mails.txt :-)

Feedback

Tell me if you like this software :-)

Actually I want to extend it, so if you have some ideas...
The most import one will be to make java2html more customizable :-)

Please send all bug reports by electronic mail to:
bug-java2html@gnu.org

My home page is
http://w3.newnet.it/bettini  or
http://infostud.dsi.unifi.it/~bettini (very fast if you're in University)

java2html is free software. See the file COPYING for copying conditions.
Anyway I won't get offended if you send me a postcard :-)

  ------------------------------------------------------------------------

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also
other ways to contact the FSF.

Please send comments on these web pages to webmasters@www.gnu.org, send
other questions to gnu@gnu.org.

Copyright (C) 1999 Free Software Foundation, Inc., 59 Temple Place - Suite
330, Boston, MA 02111, USA

Verbatim copying and distribution of this entire article is permitted in any
medium, provided this notice is preserved.

 Updated: 27 Mar 1999 jonas
  ------------------------------------------------------------------------