gpt4 book ai didi

java - JAR 文件有时会运行但不起作用,或者根本不运行

转载 作者:行者123 更新时间:2023-12-02 09:44:31 37 4
gpt4 key购买 nike

我创建了一个 GUI 程序,其中涉及在 Eclipse 中进行许多 API 调用。从 Eclipse 运行时工作完全正常,但是...

我将程序导出为 JAR 文件,当我尝试从终端或双击运行它时,它会抛出 NoClassDefFoundError。我确保选择了所有软件包并选择了正确的主类,但仍然没有运气。

我尝试将其导出为可运行 JAR 文件,当我双击它时,它会运行并打开 GUI,但无法按预期工作。但是,当我从终端运行它时,它按预期工作。我不知道为什么。

我在终端中收到的 JAR 文件的错误是:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpUriRequest
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

真的不知道这个问题的解决方案,因为网上的一些消息来源说要更改我的计算机上涉及管理员访问权限的内容,而我没有这些权限,因为我在公司笔记本电脑上工作。

对于可运行 JAR 文件,我的 GUI 按预期工作,直到第一个 HttpRequest。我必须请求 oAuth 的访问 token ,但我的请求没有被发出或其他什么,因为我得到了一个空返回,我检查了它。

这是打印的代码:

try {
HttpPost request = new HttpPost(url);

request.addHeader("Content-Type", "application/json");

StringEntity params;
params = new StringEntity("{\"grant_type\": \"authorization_code\","
+ "\"client_id\": \"\","
+ "\"client_secret\": \"\","
+ "\"code\": \"" + code + "\"," + "\"redirect_uri\": \"\"}");
request.setEntity(params);

String content = execute(request, client);

if (content != null) {
textArea.append("Response received\n\n");
} else {
textArea.append("An error occurred. No response received, please restart the process.");
return;
}

需要明确的是,该程序在从 Eclipse 运行时工作得非常好。

不太确定如何解决这个问题,如果有人有任何想法,我将不胜感激您的帮助:)

最佳答案

该错误意味着 org.apache http-client 库不在 jar 中。也许您已将其链接到 Eclipse 项目中,但未将其导出到 jar 中。

你必须创建可运行的jar(“fat-jar”)这是 Eclipse 指南:

  • 从菜单栏的"file"菜单中,选择“导出”。
  • 展开 Java 节点并选择 Runnable JAR 文件。点击下一步。
  • 在“可运行 JAR 文件规范”页面中,选择一个用于创建可运行程序的“Java 应用程序”启动配置 jar 。
  • 在“导出目标”字段中,输入或单击“浏览到”选择 JAR 文件的位置。
  • 选择库处理策略:将所需的库打包到生成的 JAR 中

    source

如果这没有帮助,请提供屏幕截图、如何从 Eclipse 导出此 jar,以及如何链接 org.apache http-client。

关于java - JAR 文件有时会运行但不起作用,或者根本不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56775067/

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