簡體   English   中英

Java將無法識別命令行設置的類路徑

[英]Java won't recognize classpath set by command line

這是我的代碼:

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清單文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM