Thomas E Enebo created JRUBY-6620: ------------------------------------- Summary: On windows if JAVA_HOME ends in a '\' then native launcher bombs Key: JRUBY-6620 URL: https://jira.codehaus.org/browse/JRUBY-6620 Project: JRuby Issue Type: Bug Components: Launcher Affects Versions: JRuby 1.6.7 Reporter: Thomas E Enebo Priority: Critical Fix For: JRuby 1.7
This is the reproduction: {noformat} C:\Users\enebo>set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_23\ C:\Users\enebo>jruby -Xtrace trace.log -v Exception in thread "main" java.lang.NoClassDefFoundError: bar Caused by: java.lang.ClassNotFoundException: bar at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Could not find the main class: bar. Program will exit. {noformat} And here is the trace.log: {noformat} Starting platform... Binary name is: jruby Module: c:\jruby-1.6.7.1\bin\jruby.dll Platform dir: c:\jruby-1.6.7.1 Parsing arguments: -Xtrace trace.log -v -Xjdkhome is not set, checking for %JAVA_HOME%... %JAVA_HOME% is set: C:\Program Files\Java\jdk1.6.0_23\ JvmLauncher::initialize() javaPathOrMinVersion: C:\Program Files\Java\jdk1.6.0_23\ checkJava(C:\Program Files\Java\jdk1.6.0_23\) File "C:\Program Files\Java\jdk1.6.0_23\jre\bin\client\jvm.dll" does not exist File "C:\Program Files\Java\jdk1.6.0_23\jre\bin\server\jvm.dll" exists File "C:\Program Files\Java\jdk1.6.0_23\jre\bin\java.exe" exists File "C:\Program Files\Java\jdk1.6.0_23\jre\bin\javaw.exe" exists *** No need to clean the binary name: jruby constructBootClassPath() File "c:\jruby-1.6.7.1\lib\jruby.jar" exists addToBootClassPath() path: c:\jruby-1.6.7.1\lib\jruby.jar onlyIfExists: true File "c:\jruby-1.6.7.1\lib\jruby.jar" exists File "c:\jruby-1.6.7.1\lib\jruby-complete.jar" does not exist BootclassPath: c:\jruby-1.6.7.1\lib\jruby.jar constructClassPath() addJarsToClassPathFrom() dir: c:\jruby-1.6.7.1 addToClassPath() path: c:\jruby-1.6.7.1\lib\jruby.jar onlyIfExists: false No need to add "c:\jruby-1.6.7.1\lib\jruby.jar" to classpath, it's already in bootclasspath No explicit classpath option is used, looking up %CLASSPATH% env addToClassPath() path: C:\foo bar bag\ onlyIfExists: false ClassPath: C:\foo bar bag\; JvmLauncher::getJavaPath() Starting application... JvmLauncher::start() mainClassName: org/jruby/Main separateProcess: false args: -v options: -Djdk.home=C:\Program Files\Java\jdk1.6.0_23\ -Djruby.home=c:\jruby-1.6.7.1 -Djruby.script=jruby -Djruby.shell=cmd.exe -Djffi.boot.library.path=c:\jruby-1.6.7.1\lib\native\i386-Windows;c:\jruby-1.6.7.1\lib\native\x86_64-Windows -Xmx500m -Xss2048k -Djruby.memory.max=500m -Djruby.stack.max=2048k -Dsun.java.command=org.jruby.Main -Djava.class.path=C:\foo bar bag\; -Xbootclasspath/a:c:\jruby-1.6.7.1\lib\jruby.jar Java DLL path: C:\Program Files\Java\jdk1.6.0_23\jre\bin\server\jvm.dll PrepareDllPath: C:\Program Files\Java\jdk1.6.0_23\jre\bin Falling back to running Java in a separate process; DLL cannot be loaded (64-bit DLL?). Command line: "C:\Program Files\Java\jdk1.6.0_23\jre\bin\java.exe" "-Djdk.home=C:\Program Files\Java\jdk1.6.0_23\" "-Djruby.home=c:\jruby-1.6.7.1" "-Djruby.script=jruby" "-Djruby.shell=cmd.exe" "-Djffi.boot.library.path=c:\jruby-1.6.7.1\lib\native\i386-Windows;c:\jruby-1.6.7.1\lib\native\x86_64-Windows" "-Xmx500m" "-Xss2048k" "-Djruby.memory.max=500m" "-Djruby.stack.max=2048k" "-Dsun.java.command=org.jruby.Main" "-Djava.class.path=C:\foo bar bag\;" "-Xbootclasspath/a:c:\jruby-1.6.7.1\lib\jruby.jar" org/jruby/Main "-v" onExit() {noformat} Notice that -Djdk.home now ends in a '\"'. It looks like CMD will literalize this into a "? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email