java - 访问外部 Jar 中的类

标签 java installation jar

我在让 Java 程序查看打包在外部 jar 中的类时遇到问题。我在 Windows 7 下运行。我将类嵌入到名为 ParserUtilities.jar 的 jar 中。我使用系统实用程序和环境选项卡建立了带有 CLASSPATH 变量的路径。 我确认 CLASSPATH 设置正确。当我输入 echo %CLASSPATH% 时,我看到 C:\Program Files\Java\externaljars\ParserUtilities.jar 这是正确的。但是当我打字时 java -jar Parse.jar (我的可执行文件)我收到错误 线程“main”中的异常 java.lang.NoClassDefFoundError: com/artificialmed/Initialize

一些附加信息:

  1. 当我将 ParserUtilities.jar 放入 ..\lib\ext 目录时,一切正常。
  2. 我正在运行 java 版本 1.6.0_16。 Java(TM) SE 运行时环境
  3. 在实验中,我输入了 java -cp C:\Program Files\Java\jre6\lib\ext>java -cp C:\Program Files\Java\externaljars\ParserUtilities.jar

并收到此错误“找不到主类:Files\Java\externaljars\ParserUtilities.jar”,但没有主类(它只是我在一堆程序中使用的类的集合)。

我的环境中没有加载 Java SDK,只有一个 java JRE(这是问题吗?)。

最佳答案

来自Sun's documentation关于 java 命令的 -jar 选项:“使用此选项时,JAR 文件是所有用户类的源,其他用户类路径设置将被忽略”。我相信这意味着您的 CLASSPATH 环境变量以及您可能在命令行上提供的任何 -cp 参数都将被忽略。

因此,您有以下选择:

  1. 将所有内容打包到一个 jar 中,然后可以通过运行 java -jar JarWithEverything.jar 来执行它。
  2. 将内容保存在单独的 jar 中,并在命令行上提供两个 jar 作为参数,以便您输入如下内容:

    java -cp "C:\Program Files\Java\externaljars\ParserUtilities.jar";"C:\Program Files\Java\externaljars\Parser.jar"com.artificialmed.Initialize

  3. 将内容保存在单独的 jar 中,并将一个或两个 jar 放入您的 CLASSPATH 环境变量中,而不是在命令行上提供它们。

关于java - 访问外部 Jar 中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2393426/

相关文章:

c++ - fatal error : QtGui/QApplication: No such file or directory|

java - 如何从另一个文件夹执行jar文件

android - 如何在 Android 中将外部 jar 文件包含到 aar 文件中

java - 下拉菜单在 selenium webdriver 中不起作用

java - 无法使用 Lambda 部署示例 Alexa 技能

java - org.gradle.api.tasks.TaskExecutionException : Execution failed for task ':compileKotlin'

linux - 错误 : gdal-config not found while installing R dependent packages whereas gdal is installed

macros - 将 Inno Setup 预处理器 #define 与其他 #define 结合起来

java - 如何编译不同包中的一组java文件,然后使用命令行构建.jar文件?

java - 如何在java代码中检查连接后oracle数据库版本