jar文件未执行

ssm49v7z  于 2021-07-04  发布在  Java
关注(0)|答案(4)|浏览(377)

我正在清理和构建一个项目,该项目正在“dist”文件夹中创建它的.jar文件。但问题是,我不能运行它。我双击它,什么也没发生。
我在环境变量的“path”选项中设置了jdk的“bin”文件夹。
有什么我不知道的吗?我对这一切都很陌生,非常感谢你的帮助。

h4cxqtbf

h4cxqtbf1#

建议自己学习如何制作可执行文件,而不是依赖自动生成的jar文件
这里有一个教程。
在默认jar文件的情况下,很可能必须执行

java -jar MY_AWESOME_JAR_FILE_NAME.jar
sf6xfgos

sf6xfgos2#

有三个常见的原因:

在windows上,使用sysin/sysout

windows,因为微软显然没有能力修复古老的愚蠢,迫使应用程序要么有一个终端,在这种情况下,一个丑陋的黑匣子总是弹出,要么他们没有,以后不能做一个。这意味着仅在windows上,有两个java可执行文件: java.exe 以及 javaw.exe ,唯一的区别是javaw没有得到一个盒子。但是,它没有一个框-sysin和sysout几乎什么都不做。
默认情况下,双击jar以javaw启动它,这意味着如果应用程序的唯一交互是从 System.in 写信给 System.out 或者 System.err ,你什么也看不到。
除了生成一个gui应用程序,或者生成一个显式运行的批处理文件(仅适用于windows的概念)之外,没有其他修复方法 java.exe .
这不适用于linux或Mac。

jar文件已损坏

可运行的jar文件有三个属性:
jar中有一个类 public static void main(String[] args) 方法内部。
该类在jar的清单中的key下命名(完全限定) Main-Class 所需的任何dep要么被烘焙到jar中,要么被烘焙到另一个jar中,这些其他jar被命名,用空格分隔,并且相对于您双击的jar所在的目录,在manifest中,在key下 Class-Path . 请注意,全局环境变量 CLASSPATH 双击jar时不执行任何操作。
你可以检查所有这些;jar只是zip文件。此外,还有 jar jdk中的工具可以解压它们,而清单只是一个名为 META-INF/MANIFEST.MF 在里面。你可以打开它,看看它是否配置正确。

java安装中断

首先检查任何随机的可运行jar。也许你安装了一个无头java。请注意,现在(自从jdk9和更高版本以来),“最终用户”甚至不会安装java,双击jar来运行它的概念基本上已经过时了。要制作“桌面”java应用程序,您需要提供一个完整的jre(如果需要的话,可以使用treeshaken),并负责安装程序。jdk中有一些有限的工具(从9开始)可以帮助您(例如 jlink ).

kjthegm6

kjthegm63#

使用cli查看java是否设置正确,jar是否损坏,或者jar是否与已安装的java版本不兼容。
确保jar文件与java二进制文件正确关联。说明可以在这里找到

disho6za

disho6za4#

只需编辑清单文件中添加main方法。如果您有任何附加的引用库,只需将它们放入类路径中即可。舱单规格如下:https://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html

相关问题