I have the file foo.jar in this directory structure:
+--+- /foo_lib
| |
| +- Ice.jar ...
|
+-- /swt-linux-gtk -- swt.jar
|
+-- foo.jar
where manifest says, in part:
Class-Path: . foo_lib/Ice.jar swt-linux-gtk/swt.jar foo_lib/o
rg.eclipse.core.commands_3.5.0.I20090525-2000.jar...
It can be lauched without problem by the command
java -jar foo.jar
So far, so good. The problem is that I want to set the path to swt.jar (but not the others) from the command line (since different platforms need different versions of swt.jar). So I removed swt-linux-gtk/swt.jar from the manifest and run this command:
java -cp swt-linux-gtk/swt.jar -jar foo.jar
Unfortunately, this doesn't work and I get this exception:
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Display
at scsadmin.BootStrapper$.main(BootStrapper.scala:90)
at scsadmin.BootStrapper.main(BootStrapper.scala)
at scsadmin.JavaMain.main(JavaMain.java:9)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Display
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(ClassLo开发者_开发问答ader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 3 more
Is -cp ignored when there is a Class-Path section in the manifest? Or am I missing something else?
From the manpage for java -jar:
When you use this option, the JAR file is the source of all user classes, and other user class path settings are ignored.
It also seems that jar is using a custom classloader to be able to load bundled jars.
When you use "java -jar", the -classpath option is ignored.
See http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/tooldocs/linux/java.html for more details.
"When you use this option, the JAR file is the source of all user classes, and other user class path settings are ignored."
Cheers, Donald.
加载中,请稍侯......
精彩评论