我已经从Eclipse导出我的Java项目" Runnable JAR文件"使用"将所需的库提取到生成的JAR"中。当我尝试通过双击启动它时,文件闪烁没有任何反应。当我尝试从java -jar Main.jar
这样的终端运行它时,它运行正常。
Main.java
class Main
{
public static void main(String[] args)
{
System.out.println("Hello");
}
在看到一些stackoverflow答案后,我还提取了jar文件以检查MANIFEST.MF
文件
MANIFEST.MF
Manifest-Version: 1.0
Class-Path: .
Main-Class: Main
Java版
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
OS
OS X El Capitain
Version 10.11.13
答案 0 :(得分:0)
通过双击执行它也可以正常工作。但由于这个程序非常短,因此可以快速打印" Hello World"并再次关闭。这让你觉得什么都没发生。添加代码的最后一行
try{
Thread.sleep(10000);
}catch(Exception e){}
让它运行更长时间并再试一次。
答案 1 :(得分:0)
问题在于,当您双击jar文件时,操作系统仅在应用程序的生命周期内启动终端。由于您的只有一条线并立即终止,终端也会立即消失。
如果您希望在完成执行此类操作后可以暂停程序:
System.out.println("Hello");
while(true) {
synchronized (Main.class) {
try {
Main.class.wait();
} catch (InterruptedException e) {
}
}
}
在用户手动终止程序之前,它将无限期地等待。