Java 无法识别命令行设置的类路径

标签 java eclipse

这是我的代码:

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

但是,当我将其导出为可运行的 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。

最佳答案

如果同时使用-cp-jar 选项,前者将被忽略。要修复它,您可以在没有 -jar 的情况下运行它(将您的 jar 文件添加到类路径并调用主类:java -cp app.jar App)或添加jar list 文件的类路径。

关于Java 无法识别命令行设置的类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27849330/

相关文章:

javax.ws.rs.ProcessingException : javax.net.ssl.SSLHandshakeException:收到致命警报:bad_certificate

java - 如何在java中访问具有两个条件的开关的情况?

java - 用Java替换文本文件的第一行

java - 向我展示使用Facelets的开源项目!

c - 在 eclipse 中将项目文件显示为可搜索列表(源洞察之类)

java.xml XMLConstants.FEATURE_SECURE_PROCESSING 无法解析或不是字段

java - 如何使用 selenium rc 和 java 自动更改动态值

Java FX从不同场景更改标签的值

eclipse - BIRT - 使用报告变量将数据从外部嵌套数据集传递到内部嵌套数据集

javascript - eclipse 在 GWT 断点处做什么?