如何让Java程序从Jar文件启动?解决JNI错误与终端启动问题
问题解决:JNI错误修复 + 终端类Jar自动打开终端
一、修复JNI错误
出现"JNI error has occurred please check your installation"的常见原因及解决方法:
- JDK/JRE版本不匹配:确保编译程序的JDK版本和运行时的JRE版本一致。编译时可指定目标兼容版本,比如要适配Java 8,编译命令如下:
javac -target 1.8 -source 1.8 YourMainClass.java - Main-Class配置错误:检查Jar包内的
MANIFEST.MF文件,确认Main-Class字段指向正确的主类(带完整包名,比如com.example.MyMain),且字段末尾必须保留换行。打包Jar时可通过命令直接指定:jar cvfm YourJar.jar MANIFEST.MF *.class - 依赖缺失:如果程序依赖第三方Jar包,打包时需将依赖一同包含。用Maven可借助
maven-shade-plugin插件打包成包含依赖的可执行Jar;手动打包则需在MANIFEST.MF中添加Class-Path字段,指定依赖Jar的相对路径。
二、让终端类Jar双击自动打开终端
根据不同操作系统,设置方法如下:
Windows系统
- 批处理文件法:创建后缀为
.bat的文件,内容如下(替换YourJarFile.jar为你的Jar文件名):
将该批处理文件与Jar放在同一目录,双击批处理文件即可打开终端运行程序,@echo off java -jar YourJarFile.jar pausepause用于运行结束后保留终端窗口,方便查看输出。 - 关联打开方式:右键Jar文件→选择"打开方式"→找到
cmd.exe,点击"更多选项"→选择"打开";之后在"打开方式"设置中,为cmd.exe添加参数:/k java -jar "%1",设置完成后双击Jar即可自动用终端打开。
macOS系统
- Shell脚本法:创建后缀为
.sh的文件,内容如下:
打开终端,进入脚本所在目录,执行#!/bin/bash cd "$(dirname "$0")" java -jar YourJarFile.jar read -p "Press Enter to exit..."chmod +x YourScript.sh给脚本添加执行权限,双击脚本时选择"在终端中打开"即可。 - Automator应用法:打开Automator,选择"应用"类型,添加"运行Shell脚本"动作,输入上述脚本内容,保存为应用程序,双击该应用即可自动打开终端运行Jar。
Linux系统
- Shell脚本法:创建后缀为
.sh的文件,内容如下:
执行#!/bin/bash cd "$(dirname "$0")" java -jar YourJarFile.jar read -n 1 -s -r -p "Press any key to exit..."chmod +x YourScript.sh添加执行权限,右键脚本→"属性"→"权限"勾选"允许作为程序执行文件",之后双击脚本时选择"在终端中运行"即可。
内容的提问来源于stack exchange,提问作者Bread Bouquet
相关产品推荐
相关产品推荐

