如何在Mac OS X上将.jar文件添加到类路径?

时间:2011-10-12 15:42:48

标签: java

我开始变得非常恼火,因为每次我尝试将JAR文件添加到类路径以运行程序(在Eclipse中编译好)我得到一个“java.lang.NoClassDefFoundError”异常。 文件swt.jar和GUI.class(主类)位于同一目录中。如果我发出此命令:“java -cp swt.jar GUI”,我收到此错误消息:

  

线程“main”中的异常java.lang.NoClassDefFoundError:GUI引起   by:java.lang.ClassNotFoundException:GUI at   java.net.URLClassLoader $ 1.run(URLClassLoader.java:202)at   java.security.AccessController.doPrivileged(Native Method)at   java.net.URLClassLoader.findClass(URLClassLoader.java:190)at   java.lang.ClassLoader.loadClass(ClassLoader.java:306)at   sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)at at   java.lang.ClassLoader.loadClass(ClassLoader.java:247)

如果我像这样制定命令:“java GUI -cp swt.jar”,它将抛出此异常:

  

线程“main”中的异常java.lang.NoClassDefFoundError:   org / eclipse / swt / widgets /在GUI.main上显示(GUI.java:9)引起:   java.lang.ClassNotFoundException:org.eclipse.swt.widgets.Display at   java.net.URLClassLoader $ 1.run(URLClassLoader.java:202)at   java.security.AccessController.doPrivileged(Native Method)at   java.net.URLClassLoader.findClass(URLClassLoader.java:190)at   java.lang.ClassLoader.loadClass(ClassLoader.java:306)at   sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)at at   java.lang.ClassLoader.loadClass(ClassLoader.java:247)... 1更多

我只想知道如何将.jar文件添加到mac上的运行时类路径中 所有这些命令都是在运行Mac OS X Lion的64位MacBook上从终端发出的。

2 个答案:

答案 0 :(得分:2)

我认为,问题在于您将swt.jar指定为类路径,但您正在使用的文件不在jar中。你需要将jar和这个dir指定为类路径。

e.g。

java -cp swt.jar:./ GUI

答案 1 :(得分:0)

这个将有效,并有修改:

  

如果我像这样制定命令:“java GUI -cp swt.jar”

你刚刚走得不够远。您必须添加所有第三方JAR,包括Eclipse SWT和所有其他依赖项。