Hi folks!
I know, the subject doesn't look like an Xcode issue, but for me it is. I blindly went ahead and upgraded my java to 1.5 and now am having issues with my WebObjects development (actually, I found a printing bug in Java 5 that's a show stopper for me). So now I want to set up my WO project to continue using 1.4 instead of 1.5 (besides, I've just heard that Java 5 isn't supported in WO 5.3).
Sounds easy, right? Lots of documentation about this and plenty of discussions on the lists talking about how to do this. But none of it seems to work for me. A sample of the things I've tried:
- setting "target version" AND "source version" to 1.4 in the "Java Compiler Settings" under "Settings -> Simple View" for each target in my project (probably only needed the project-named target, but when that didn't work I did the same in my "Application Server" and then in the "Web Server" targets as well, in case they made a difference but they haven't). When those failed, I also added "-target 1.4 -source 1.4" in the "Other Java Compiler Flags" field (without changing the "target version" and "source version" settings I previously made), but again with no luck.
- setting "target VM version" to "1.4*" in the "Pure Java Specific" settings under "Info.plist Entries -> Simple View", again for each target when the project-named target didn't work. Still no love.
At this point, nothing has changed - my WO project still claims to be running in Java 5 (spit out in debug logging) and my simple print routine still crashes (java crash reported - rdar://4543288). I did notice something on the java-dev list about the bootclasspath being needed for this to work, so I tried this next:
- added the following line to the executable itself through "Get Info" as "Arguments to be passed on launch": -Xbootclasspath:"/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Classes/classes.jar"
Adding this causes something different to happen alright, but it's not any better ...
========== BEGIN CONTENTS OF RUN LOG ========== [Session started at 2006-05-09 16:41:11 -0700.] Reading MacOSClassPath.txt ... Launching TimeCard.woa ... java -XX:NewSize=2m -Xmx64m -Xms32m -DWORootDirectory="/System" -DWOLocalRootDirectory="" -DWOUserDirectory="/Users/DWS/Projects/TimeCard/build/Development" -DWOEnvClassPath="" -DWOApplicationClass=Application -DWOPlatform=MacOS -Dcom.webobjects.pid=17710 -Xbootclasspath:/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Classes/classes.jar -classpath WOBootstrap.jar com.webobjects._bootstrap.WOBootstrap -WOAutoOpenInBrowser NO -WOPort 2500 Error occurred during initialization of VM java.lang.NoSuchMethodError: java.lang.System.nanoTime()J
TimeCard has exited due to signal 5 (SIGTRAP). ========== END CONTENTS OF RUN LOG ==========
Cute (I checked because I'm paranoid - I'm not calling anything that looks like nanoTime() anywhere in my code:). OK, before I restore this machine to the point before doing that last OS and Java update (and possibly report a Xcode bug?), can anyone see what I've been missing? Each attempt is preceeded with a rather paranoid sequence of cleaning all targets, deleting the build folder, quitting Xcode, restarting it and double-checking that all changes stuck - all I can do is make it crash when printing or crash when the program is starting. It should be noted that this code ran great before installing Java 5 ....
Oh, versions of the world: Mac mini 1.25GHz G4, 1G RAM OSX 10.4.6 (PPC) Xcode Version 2.2 (IDE: 655.0; Core 658.0; ToolSupport 651.0) java version "1.5.0_06" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112) Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode, sharing)
Dave Stewart Aqua~Flo Supply (Goleta CA) dstewart at aquaflo dot com
I was told today that if you play a Windows 98 CD backwards, it plays satanic messages. But I reckon that's nothing, if you play it forward it installs Windows! |