当前位置: 首页 > 知识库问答 >
问题:

如何通过双击打开终端使我的jar文件可执行

商棋
2023-03-14

好的,所以基本上,每次我看到这个问题被问到,它都没有我想要的答案,这就是为什么我要问自己。

基本上,我在BlueJ上做了一个java项目(遗憾的是,学校要求。但如果这是个问题,我可以将它导出到其他地方(最好是IntelliJ或Visual Studio代码)),但本质上,我想这样做,我只需双击我的.jar导出,它就会打开一个终端窗口并启动。然而,当我尝试这个方法时,我得到了这个错误:第一个错误

当我点击Ok时,会出现第二个错误

现在,如果我想让jar在终端上运行,那么执行java-jar-jarFileName.jar工作得非常完美,但我希望在双击jar文件时实现这一点;让它从终端启动并运行。

我看到的关于这个问题的所有其他答案都归咎于html" target="_blank">用户计算机,通常告诉他们安装java或其他版本的软件,但这不是问题所在。我有其他jar文件,我可以运行得非常好,比如Minecraft Forge安装程序或Minecraft插口安装程序(抱歉,只有Minecraft是例子,其他的没有多少使用Java)。这也是一个uni项目,我所在领域的其他人都不知道如何使他们的jar成为可执行文件,这个文件也不适用于其他任何人。

所以是的,我知道这是一个问题,是如何编译jar或其他东西,而不是什么java安装我的电脑。

我只是想让它可以双击,方便我发送给朋友,但如果有人知道我可以绕过这个问题的其他方法,那就好了。例如,我知道我可以制作一个Bash文件,它只需为我做java-jar jarFileName.jar之类的事情,但是我更愿意把它作为一个jar文件,所以我不知道是否可以将它合并到文件中,但是是的。

此外,我真的很喜欢一个不涉及下载外部程序或其他什么的解决方案,因为我想做的就是把这个文件发送给我的朋友,让他们双击它启动。

TL;DR,我需要做什么才能通过双击使我的jar文件真正可执行。非常感谢。

共有1个答案

施驰
2023-03-14

要使jar文件可执行,必须设置入口点

在创建jar文件时,可以通过将-e选项传递给jar命令来实现这一点,例如:

jar cvfe myapp.jar com.mycompany.myapp.MyApp com\mycompany\myapp

这将在jar的清单中添加指向启动类的主类条目,启动类应该有一个Main方法,例如:

public static void main(String[] args) { 
    // start up the application
}

创建JAR文件时,它会自动接收默认清单文件。存档中只能有一个清单文件,并且它始终具有路径名

META-INF/MANIFEST.MF

入口点由主类指定,例如:

Manifest-Version: 1.0
Created-By: 1.8.13_37 (Oracle Corporation)
Main-Class: com.mycompany.myapp.MyApp

如果您想使现有的jar文件可执行,您可以解压缩它,修改清单并再次压缩(并重命名它,使其具有.jar扩展名-jar只是一个zip)。

但是我认为您显示的错误不是由jar不可执行引起的,而是由一些环境问题引起的,导致Java应用程序找不到使JNI工作所需的变量或路径。为了解决这个问题,您必须提供更多关于您试图用JNI做什么的细节。

 类似资料:
  • 我有一个。jar文件,我希望通过双击它而不是命令行打开它。当我双击它时,无论它是用javaw.exe打开的,我都希望它在双击它时用java.exe打开。

  • 问题内容: 在命令行中运行.jar文件可以正常工作,但我无法通过双击Windows 7(64)来运行任何.jar文件。双击后似乎没有任何反应。 我尝试了ftype提示,但没有成功: 我重新安装了64位JDK 7,没有成功。 任何想法? 问题答案: 右键单击->打开方式中列出了什么?是否有其他程序列为默认程序?是否列出了Java运行时?如果列出了Java运行时,则可以打开它,并将其作为运行默认程序。

  • 问题内容: 首先,我正在学习Java,但是我对Java还是很陌生,所以复杂的代码将困扰我。 当我下载一个.jar文件说要向我的世界安装一个mod并双击它时,它无法运行。装载轮转动大约两秒钟,然后停下,没有其他反应。我知道的.jar设置正确,因为它使用命令通过cmd运行 因此,我已经尝试使用默认程序设置为java \ jdk1.7.0_25 \ jre \ bin中的javaw.exe来运行它。同样

  • 我的机器中有JDK_1.6,我删除了它并安装了JDK_1.7。因此,在安装JDK_1.7之后,我不能双击运行我的jar文件。我可以使用命令提示符运行相同的文件。 安装JDK_1.7后,我使用Java7从eclipse运行程序,并使用相同的Java7导出jar。 有人能帮我解决这个问题吗?

  • 我想通过双击一个Jar文件来运行它。 下面是其中唯一的Java类文件。 并且清单文件已经定义了Main-Class。

  • 所以一切都很好,就像2到3周前一样,突然我所有的jar文件都无法通过双击打开 我检查了我的注册表,但一切正常,关联的. jar应用程序可以使用javaw运行,但我仍然无法双击运行可执行的. jar文件 我可以用javaw -jar文件名在cmd中运行它们.jar但它不适用于我的世界,我不能用那个cmd运行我的世界,我想让它,所以每个可执行文件.jar文件都可以打开双击 我的 java 命令在 cm