将库添加到java,CLASSPATH,jar,linux

时间:2016-03-11 07:03:24

标签: java linux jar classpath

我一直在浏览互联网几个小时,我无法找到问题的答案。我想添加的库是JGraphT

我是Java的新手,我想添加一个免费的图库。我下载了所有.jar文件然后问题startet。我应该一步一步做什么? 我发现有关使用-cp或-classpath或addng .jar编译到CLASSPATH的信息(我正在使用Linux并且我在gedit中编写我的程序(对我的学习是强制性的)并使用终端编译它)。但我想知道我应该一步一步做什么?

到目前为止我有什么:

  • 我已经下载了多个.jar,他们都坐在一个文件夹中 我要编译的xxx.java文件

  • 我需要更改CLASSPATH吗?怎么做?我应该如何编译和 更改CLASSPATH后运行我的程序?平凡的方式(javac
    xxx.java; java xxx)或者我应该改变吗?

  • 或者我可能不需要更改CLASSPATH而只需添加-classpath 编制?如果是这样,编译和运行的内容应该如何表示 样的?

此外我已经尝试过使用-cp ...我将我的行封在终端中。它编译正确,但当我尝试运行它时,我收到了奇怪的错误。我确定代码是正确的,因为它是在库中给出的一种方法来测试是否正确安装。

wiktoria@wiktoria-1015PW:~/programowanie/grafy/java/testy$ javac -cp jgrapht-ext-0.9.1-uber.jar: HelloJGraphT.java
wiktoria@wiktoria-1015PW:~/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)
wiktoria@wiktoria-1015PW:~/programowanie/grafy/java/testy$ 

1 个答案:

答案 0 :(得分: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