繁体   English   中英

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

[英]How to make my jar file executable by double click to open terminal

好吧,基本上,每次我看到这个问题时,它都没有我正在寻找的答案,这就是我试图问自己的原因。

基本上,我在 BlueJ 上做了一个 java 项目(遗憾的是,学校需要。但如果这是问题所在(最好是 IntelliJ 或 Visual Studio Code),我可以将其导出到其他地方),但本质上,我想做它,所以我可以简单地双击my.jar 导出,它将打开一个终端 window 并启动。 但是,当我尝试此操作时,出现此错误:第一个错误

当我单击确定时,会出现:第二个错误

Now, if I want the jar to run on terminal, doing java -jar jarFileName.jar works perfect, but what I want is for that to happen when I double click the jar file; 让它从终端启动和运行。

我为这个问题看到的所有其他答案都归咎于用户计算机,通常会告诉他们安装 java 或其他版本的某些版本,但这不是问题。 我还有其他 jar 文件可以完美运行,例如 Minecraft Forge 安装程序或 Minecraft Spigot 安装程序(抱歉,只有 Minecraft 示例,其他使用 Java 的例子不多)。 这也是针对一个 uni 项目的,我所在领域的其他人都不知道如何让他们的 jar 可执行,这个文件也不适用于其他任何人。

所以,是的,我知道 jar 的编译方式或其他问题,而不是我的 PC 上安装的 java 的问题。

我只是想让它可以双击以方便我将其发送给朋友,但如果有人知道另一种方法我可以解决这个问题,那很好。 For example I know I could make a Bash file which simply does the java -jar jarFileName.jar for me or something, but I'd rather have it all as one jar file, so I don't know if this can be incorporated into文件,但是是的。

此外,我真的很想要一个不涉及下载外部程序或其他任何东西的解决方案,因为我要做的就是将此文件发送给我的朋友,让他们只需双击它即可启动。

TL; DR,我该怎么做才能通过双击使我的 jar 文件实际可执行。 谢谢你。

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

您可以通过在创建 jar 文件时将e选项传递给 jar 命令来执行此操作,例如:

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

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

package com.mycompany.myapp;

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

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

META-INF/MANIFEST.MF

入口点由 Main-Class 指定,例如:

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

If you want to make an existing jar file executable you could unzip it, modify the manifest and zip it again (and rename it so it has the.jar extension - a jar is just a zip).

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM