gpt4 book ai didi

java - 访问外部 Jar 中的类

转载 作者:行者123 更新时间:2023-12-02 08:34:19 25 4
gpt4 key购买 nike

我在让 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com