2016-03-11 80 views
0

我一直在瀏覽互聯網幾個小時,我無法找到我的問題的答案。我試圖添加的庫是JGraphT將庫添加到java,CLASSPATH,jar,linux

我是新來的Java,我想添加一個免費的圖庫。我下載了所有.jar文件,然後解決了問題。我應該怎麼做? 我發現有關使用-cp或-classpath或addng .jar編譯爲CLASSPATH的信息(我正在使用Linux,並且在gedit中編寫我的程序(對我的學習是強制性的),並用終端進行編譯)。但我想知道我應該怎麼做一步一步來?

什麼我到目前爲止有:

  • 我已經下載了多個.jar和他們都坐在一個文件夾中有
    的xxx.java文件我想編譯

  • 做我需要更改CLASSPATH?怎麼做?在更改CLASSPATH後,我應該如何編譯並運行我的程序?普通的方式(javac
    xxx.java; java xxx)還是應該改變一下?

  • 或許我不需要改變CLASSPATH只需添加-classpath而編譯 ?如果是這樣,那麼編譯器應該怎麼稱讚看起來像

此外,我已經嘗試使用-cp ...我將我的線路在終端。它編譯正確,但是當我試圖運行它時,我收到了奇怪的錯誤。我確定代碼是正確的,因爲它是在庫中給出的一種方式來測試它是否正確安裝。

[email protected]:~/programowanie/grafy/java/testy$ javac -cp jgrapht-ext-0.9.1-uber.jar: HelloJGraphT.java 
[email protected]:~/programowanie/grafy/java/testy$ java -cp jgrapht-ext-0.9.1-uber.jar: HelloJGraphT 
Exception in thread "main" java.lang.NoClassDefFoundError: HelloJGraphT (wrong name: org/jgrapht/demo/HelloJGraphT) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) 
[email protected]:~/programowanie/grafy/java/testy$ 

回答

0

假設你的類屬於包net.example.graph。這意味着班級的真實姓名是net.example.graph.HelloJGraphT

這也意味着你有這樣的目錄結構:

project_dir/net/example/graph 

轉到PROJECT_DIR文件夾,然後試試這個:

javac -cp <path to jgrapht JAR> net/example/graph/HelloJGraphT.java 
java -cp <path to jgrapht JAR> net.example.graph.HelloJGraphT 
+0

如何找到路徑jgrapht JAR?當我在dir中的.jar文件是我應該寫echo $ PATH? – ninigi

+0

在Linux上,「pwd」命令打印當前工作目錄。 – Atuos