gpt4 book ai didi

java - 不会打开从 Eclipse Mac OS 导出的可运行 jar

转载 作者:行者123 更新时间:2023-12-04 08:16:24 26 4
gpt4 key购买 nike

我正在运行 MacOS Big Sur(英特尔 MacBook Pro 2020),并且我正在将 eclips 用于大学项目。
该项目是用 java 编写的,对于 GUI,我使用的是 JFX。
在使用 eclipse 时,包括 JavaFX 代码在内的所有内容都可以正常打开并运行。
当我将项目导出到可运行的 jar 时,它要求打开它,然后说有一个错误。
另一方面,当我使用 Windows 的 friend 导出到可运行的 jar 时,它对他们来说工作正常。
项目 git 是 Here to watch
我尝试运行它 throw terminal 以查看问题,并收到以下消息:

 rafaelelkoby@MacBook-Pro ~ % java -jar Server.jar 
Exception in thread "main" java.lang.NoClassDefFoundError: javafx/application/Application
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:514)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:422)
at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:416)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:691)
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:415)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:468)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:59)
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:435)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 13 more
使用 java 8 JDK 应该包含 JFX,所以我真的找不到问题。

最佳答案

所以在评论中得到来自 Slaw 的帮助后,我发现了问题以及如何解决它。
我的问题是我试图使用 Java 15.0.1 执行一个 jar 文件,但在 JavaFX 中不能很好地工作。
首先检查您是否安装了 Java 8 JDK。
并找到Mac中的虚拟机文件夹witch默认在java文件夹下的library文件夹。
检查您是否安装了 1.8 版本
然后通过命令检查执行jar的java版本是什么:

java -version
然后,如果它不同,则 java 8 运行以下命令:
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
然后再次运行并检查您是否正在使用 java 8
java -version
检查它是否已更改并通过使用运行您的 jar
java -jar JarName.jar 
如果有什么不明白的请评论,我会修改的。
希望我能帮助你:)
========================================
另外一个选项:
如果您的代码正在使用 java 8
如果 java -version告诉您您正在使用与 1.8.X 不同的东西
在 MacOS 上,转到虚拟机文件夹:
/库/Java/JavaVirtualMachines
并仅保留您使用的 1.8.X,因此它将成为默认值。
也为我工作

关于java - 不会打开从 Eclipse Mac OS 导出的可运行 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65680884/

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