我已經下載了一個xSocket.jar,它將用作classpath並編譯myprogram.jar,兩者都在Java文件夾中。 在Manifest中添加類路徑能夠找到xSocket.jar,而無需在命令行中定義-cp
?清單中的類路徑
在我的命令行D:\>
的位置,我在myprogram.jar試圖運行java -jar java\myprogram.jar -n 0
Exception in thread "main" java.lang.NoClassDefFoundError: org/xsocket/connectio
n/IBlockingConnection
at myprogram.main(myprogram.java:114)
Caused by: java.lang.ClassNotFoundException: org.xsocket.connection.IBlockingCon
nection
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)
... 1 more
我的清單:
Manifest-Version: 1.0
Created-By: 1.6.0_22 (Sun Microsystems Inc.)
Main-Class: myprogram
Class-Path: xSocket
是的,它的工作!難怪,我花了2天時間讓我的Flash應用程序NativeProcess工作,因爲它有一個無法正確使用-cp執行Jar的bug。但我可以在絕對路徑中聲明classpath嗎?如「D:\ java \ xSocket.jar」沒有雙引號? – Proyb2 2010-11-07 07:03:26