我有一个可执行的jar文件,它通过以下命令在我的macOS系统上执行得很好:
java -jar Hello.jar
然而,当我试图双击它时,它会停下来,最后显示一个弹出式对话框:
Java文件"Hello.jar“无法启动。检查控制台是否可能出现错误或消息。
我在网上搜索了相当多的内容,所有的建议都是从shell脚本调用java或将jar文件包装成本机可执行文件的明显解决方案。对于这个特定的问题,我想将讨论限制在macOS上如何通过双击jar文件本身而不修改jar文件来执行jar文件?
我对两种类型的Java应用程序进行了测试--第一行命令行和GUI应用程序。
命令行应用程序
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, please enter some input");
Scanner scan = new Scanner(System.in);
String s = scan.next();
System.out.println(s);
scan.close();
}
}
然后,我将使用以下命令进行编译和捆绑:
javac Hello.java
jar cvfe Hello.jar Hello Hello.class
GUI应用程序
import java.io.File;
import javafx.application.Application;
import javafx.stage.FileChooser;
import javafx.stage.Stage;
public class FileChooserExample extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
FileChooser fileChooser = new FileChooser();
File selectedFile = fileChooser.showOpenDialog(primaryStage);
System.out.println(selectedFile.getAbsolutePath());
}
}
编译方式与命令行应用程序相同。有趣的是,GUI在双击Windows时工作,但在macOS上有错误。如何通过双击jar文件本身在macOS上执行jar文件,而无需修改jar文件?
编辑:如果系统尚未安装,我也无法在系统上加载任何其他可执行文件。我最好是通过使用任何标准的Java发行版(例如,OpenJDK、Oracle等)配置系统来寻找一种方法来实现这一点。
发布于 2020-08-08 21:12:33
您可以编写一个简单的基于文档的应用程序,它接收一个jar文件并使用java命令执行它。
完成这些操作后,在双击jar文件时,按照以下步骤使其成为处理程序:
请注意,应用程序打开的选择对话框最初仅限于“推荐的应用程序”。底部有一个组合框,允许您将其更改为“所有应用程序”
https://stackoverflow.com/questions/63320019
复制相似问题