1
对不起,有些令人困惑的标题,让我解释一下。 这里是我的代码:Java不会识别由命令行设置的类路径
import java.net.URL;
import java.net.URLClassLoader;
public class App {
public static void main(String[] args) {
System.out.println("java.class.path="+System.getProperty("java.class.path"));
ClassLoader cl = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader)cl).getURLs();
for(URL url: urls){
System.out.println(url.getFile());
}
}
}
当我运行这个在Eclipse与LWJGL和Slick2d库,我得到的,符合市场预期:
java.class.path=/home/the-genius/workspace/classpath/bin:/home/the-geniu/workspace
/libs/slick/lib/slick.jar:/home/the-genius/workspace/libs/lwjgl/lwjgl-2.9.2/jar
/lwjgl.jar:/home/the-genius/workspace/libs/lwjgl/lwjgl-2.9.2/jar/lwjgl_util.jar:
/home/the-genius/workspace/libs/lwjgl/lwjgl-2.9.2/jar/jinput.jar
/home/the-genius/workspace/classpath/bin/
/home/the-genius/workspace/libs/slick/lib/slick.jar
/home/the-genius/workspace/libs/lwjgl/lwjgl-2.9.2/jar/lwjgl.jar
/home/the-genius/workspace/libs/lwjgl/lwjgl-2.9.2/jar/lwjgl_util.jar
/home/the-genius/workspace/libs/lwjgl/lwjgl-2.9.2/jar/jinput.jar
然而,当我出口它作为一个可运行罐子,执行通过
java -cp /home/the-genius/workspace/classpath/bin:/home/the-geniu/workspace
/libs/slick/lib/slick.jar:/home/the-genius/workspace/libs/lwjgl/lwjgl-2.9.2/jar
/lwjgl.jar:/home/the-genius/workspace/libs/lwjgl/lwjgl-2.9.2/jar/lwjgl_util.jar: -jar app.jar
我得到
java.class.path=classpath.jar
/home/the-genius/classpath.jar
是否有任何理由发生这种情况?我如何解决它?
我在Ubuntu上运行,如果这有所作为。我也尝试过使用OpenJDK-7和Sun Java-7。