我已经将我的Java项目从Eclipse导出为"Runnable JAR文件“,并带有"Extract required libraries my JAR”。当我试图通过双击来启动它时,没有任何反应,只有文件闪烁。当我尝试从像java -jar Main.jar这样的终端运行它时,它工作得很好。
Main.java
class Main
{
public static void main(String[] args)
{
System.out.println("Hello");
}在看到一些堆栈溢出答案后,我还解压了jar文件以检查MANIFEST.MF文件
MANIFEST.MF
Manifest-Version: 1.0
Class-Path: .
Main-Class: MainJava版本
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 X El Capitain
Version 10.11.13发布于 2016-02-07 07:19:28
当你通过双击它来执行它的时候,它也能正常工作。但由于此程序非常短,它快速打印"Hello World“并再次关闭。这会让你以为什么都没发生。添加代码的最后一行
try{
Thread.sleep(10000);
}catch(Exception e){}使其运行更长时间,然后重试。
发布于 2016-02-07 07:21:45
问题是,当您双击jar文件时,操作系统仅在应用程序的生命周期内启动终端。由于您的代码只有一行,并且立即终止,因此终端也会立即消失。
如果你愿意,你可以让你的程序在完成执行后挂起,如下所示:
System.out.println("Hello");
while(true) {
synchronized (Main.class) {
try {
Main.class.wait();
} catch (InterruptedException e) {
}
}
}它将无限期地等待,直到用户手动终止该程序。
https://stackoverflow.com/questions/35247678
复制相似问题