>Here's a patch to fix the jikes compiler code in Jasper -
>against tomcat 3.3 m2
Thanks for the patch but :
You can't assume that all users will have jikes on
/usr/local/java/jikes-1.13/bin/jikes !
Solution: When you start tomcat setup accordingly your PATH env
vars.
>It looks like there is something OS specific in the original
>code. Its not clear to me that my fix
>would work under all platforms. I'll leave that to greater minds.
>
>It looks like under some OS, extra quotes are put around each
>argument. I don't know what
>OS would that be - it should fail under every OS I'm familiar
>with... But that is the only explanation
>that I have for the extra quotes.
>
>Under linux, the original code fails. I imagine it would fail
>under most other UNIX systems.
>
>Hope someone can make some sense of this. Using jikes has
>been a significant performance improvement
>for us. The javac compiler has a remarkably high
>initialization hit - something jikes has successfully
>minimized.
>
>Have Fun,
>-Tom
>
>
>---
>jakarta-tomcat/src/share/org/apache/jasper/compiler/JikesJavaCo
>mpiler.java Sun Jan 14 15:45:40 2001
>+++
>jakarta-tomcat-new/src/share/org/apache/jasper/compiler/JikesJa
>vaCompiler.java Sat Mar 17 23:20:41 2001
>@@ -67,6 +67,7 @@
> import java.io.File;
> import java.io.ByteArrayOutputStream;
>
>+
> /**
> * A Plug-in class for specifying a 'jikes' compile.
> *
>@@ -88,7 +89,7 @@
>
> String encoding;
> String classpath;
>- String compilerPath = "jikes";
>+ String compilerPath = "/usr/local/java/jikes-1.13/bin/jikes";
> String outdir;
> OutputStream out;
> boolean classDebugInfo=false;
>@@ -161,26 +162,27 @@
>
> String[] compilerCmd;
> if (classDebugInfo) {
>- compilerCmd = new String[] {
>- "\"" + compilerPath + "\"",
>- "-g",
>- //XXX - add encoding once Jikes supports it
>- "-classpath", "\"" + classpath +
>MicrosoftClasspath + "\"",
>- "-d", "\"" + outdir + "\"",
>- "-nowarn",
>- "\"" + source + "\""
>- };
>+ compilerCmd = new String[] {
>+ compilerPath,
>+ "-g",
>+ //XXX - add encoding once Jikes supports it
>+ "-classpath", classpath,
>+ "-d", outdir,
>+ "-nowarn",
>+ source
>+ };
> } else {
>- compilerCmd = new String[] {
>- "\"" + compilerPath + "\"",
>- //XXX - add encoding once Jikes supports it
>- "-classpath", "\"" + classpath +
>MicrosoftClasspath + "\"",
>- "-d", "\"" + outdir + "\"",
>- "-nowarn",
>- "\"" + source + "\""
>- };
>+ compilerCmd = new String[] {
>+ compilerPath,
>+ "-encoding", "UTF8",
>+ "-classpath", classpath,
>+ "-d", outdir,
>+ "-nowarn",
>+ source
>+ };
> }
>
>+
> ByteArrayOutputStream tmpErr = new
>ByteArrayOutputStream(OUTPUT_BUFFER_SIZE);
> try {
> p = Runtime.getRuntime().exec(compilerCmd);
>@@ -198,7 +200,6 @@
> // Wait until the complete error stream has been read
> errPumper.join();
> compilerErr.close();
>-
> p.destroy();
>
> // Write the compiler error messages, if any, to
>the real stream
>@@ -218,6 +219,7 @@
> if (tmpErr.size() > 0) {
> isOkay = false;
> }
>+
> return isOkay;
> }
>
>
>