我遇到问题,让我的Java程序看到打包在外部jar中的类。我在Windows 7下运行。我将这些类嵌入一个名为ParserUtilities.jar的jar中。我使用System实用程序和Environment选项卡使用CLASSPATH变量建立了路径。 我确认CLASSPATH设置正确。当我输入echo%CLASSPATH%时,我明白了 C:\ Program Files \ Java \ externaljars \ ParserUtilities.jar这是正确的。但是当我打字的时候 java -jar Parse.jar(我的可执行文件)我收到错误 线程“main”中的异常java.lang.NoClassDefFoundError:com / artificialmed / Initialize
其他一些信息:
并得到此错误“无法找到主类:Files \ Java \ externaljars \ ParserUtilities.jar”但没有主类(它只是我在一堆程序中使用的类的集合)。
我没有在环境中加载Java SDK,只是一个java JRE(这是问题吗?)。
答案 0 :(得分:1)
尝试在类路径条目周围添加“”,因为目录中有一个空格(Program Files)。错误消息“Files \ Java \ externaljars \ ParserUtilities.jar”将表明这是问题。
答案 1 :(得分:1)
从-jar
选项上的Sun's documentation到java
命令:“当您使用此选项时,JAR文件是所有用户类的源,以及其他用户类路径设置被忽略了。“我相信这意味着您的CLASSPATH
环境变量以及您可能在命令行上提供的任何-cp
参数都将被忽略。
因此,您有以下选择:
java -jar JarWithEverything.jar
。将内容保存在单独的jar中,并在命令行中将两个jar作为参数提供,以便键入以下内容:
java -cp "C:\Program Files\Java\externaljars\ParserUtilities.jar";"C:\Program Files\Java\externaljars\Parser.jar" com.artificialmed.Initialize
将内容保存在单独的jar中,并将一个或两个jar放入CLASSPATH
环境变量中,而不是在命令行中提供它们。