|
next
|
 Subject: Compilation error Author: (Deleted User) Date: 22 Jun 2007 12:28 AM Originally Posted: 22 Jun 2007 12:23 AM
|
I have a Java compile error which seems to be due to a Java version mismatch. Being unfamilar with Java versioning problems, I would appreciate some help on this, please.
Scenario:
A simple SS project using a Stylus Studio sample XSD (purchaseOrder.xsd); generated the Java binding classes (successful); compiled these Java classes through the SS UI.
The error message (in part) -
---
Main.java
c:\Validation of XML with XSD\StylusStudio\purchaseOrder\Main.java:8: cannot access java.io.FileInputStream
bad class file: C:\Program Files\Java\jre1.5.0_08\lib\rt.jar(java/io/FileInputStream.class)
class file has wrong version 49.0, should be 48.0
Please remove or make sure it appears in the correct subdirectory of the classpath.
import java.io.FileInputStream;
^
1 error
---
The JRE versions I have installed (under C:\Program Files\Java\ ) are -
JRE 1.5.0_03
JRE 1.5.0_08
JRE 1.4.2_06
Also, I have a JDK (1.4.2_06) installed at C:\j2sdk1.4.2_06\
Does this mean that it is necessary for me to remove the 1.4.2 JDK, and install a JDK version that matches the latest JRE that is installed?
Why I phrase the question this way is that I have just now permitted Sun's auto-downloader to install a patch, which turned out to be a new JRE (1.6.0_01) at C:\Program Files\Java\jre1.6.0_01\
So, should I remove JDK 1.4.2 (and install the 1.6.0_01 JDK), or modify a path (within Stylus Studio) so that the error shown above doesn't happen?
If the latter, how do I do that - and is that on a per-Project basis or is it an option setting in SS?
Attached 22Kb .ZIP contains output from the genration and compilation, the XSD, the .PRJ, and some notes.
Ian
purchaseOrder_GenerateJavaBC.zip TestProject ZIP - #2 - Compilation error
|
next
|
 Subject: Compilation error Author: (Deleted User) Date: 22 Jun 2007 08:52 AM Originally Posted: 22 Jun 2007 07:55 AM
|
Ivan, that is exactly what I couldn't find.
(and I believed it to be fixed immediately, of course.)
I love that autodetection.
I have aligned the versions to 1.4.2_14, closed SS and then restarted.
Checking the Options > JVM after restart, they are exactly as set.
Enable JVM: checked
params: -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8001
JDK
jvac params: -g
External JVM
parms: blank
Debugging params: -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${AutoDetect}
So that looks right.
But now I have another error.
----
Launching "C:\Program Files\Java\j2re1.4.2_14\bin\java.exe" -jar "C:\Program Files\Stylus Studio 2007 XML Enterprise Suite Release 2\bin\lib\jaxb\jaxb\lib\jaxb-xjc.jar" -d <outputDirectory> -p purchaseOrder "file:///c:/Validation of XML with XSD/StylusStudio/purchaseOrder.xsd"...
xjc version "1.0.5-b16-fcs"
JavaTM Architecture for XML Binding(JAXB) Reference Implementation, (build 1.0.5-b16-fcs)
parsing a schema...
java.lang.NoSuchMethodError: javax.xml.parsers.DocumentBuilderFactory.getSchema()Ljavax/xml/validation/Schema;
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.<init>(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source)
at com.sun.tools.xjc.reader.internalizer.DOMForest.<init>(DOMForest.java:79)
at com.sun.tools.xjc.GrammarLoader.buildDOMForest(GrammarLoader.java:278)
at com.sun.tools.xjc.GrammarLoader.loadXMLSchema(GrammarLoader.java:356)
at com.sun.tools.xjc.GrammarLoader.load(GrammarLoader.java:127)
at com.sun.tools.xjc.GrammarLoader.load(GrammarLoader.java:76)
at com.sun.tools.xjc.Driver.run(Driver.java:181)
at com.sun.tools.xjc.Driver._main(Driver.java:80)
at com.sun.tools.xjc.Driver.access$000(Driver.java:46)
at com.sun.tools.xjc.Driver$1.run(Driver.java:60)
Exception in thread "main"
Error executing command line
----
That just does not make sense to me. I expected alignment of the JVM (JRE) and the JDK would generate code OK, and then I could just compile that (ie, that the compiler would accept it).
What I find is that code generation fails with JVM (JRE) 1.4.2_14.
However, the code generation WILL succeed if the JVM version is set to something higher than v1.4.2_14 - I set it to the highest I have installed, which is 1.6.0_01 (when I started this thread I had JRE v1.5.0_08 installed, and the JDK that I installed was 1.4.2_06).
My current available JRE versions are shown in an attachment.
I removed JDK 1.4.2_06 and installed JDK 1.4.2_14. That is the only JDK I have installed.
OK, I got the code genrated. Next, see if that will compile.
So, I set the JVM (JRE) and the JDK to align at 1.4.2_14 - and quit / restarted SS, then ran the compile on Main.java.
Now the compilation succeeds.
The ZIP attached contains code generation output messages -
Generate4.txt (failed, JRE was 1.4.2_14)
Generate5.txt (succeeded, JRE was 1.6.0_01)
compilation output message -
Compile5.txt (succeeded, both JVM and JDK aligned to 1.4.2_14)
also screenshots of the Options > Java Virtual machine settings.
This doesn't make sense to me.
Ian
Options-JVM-JDKpuzzle.zip Puzzle - JRE and JDK version alignment
|
|
|
|