[英]Executable jar file doesn't execute
首先,我對Java不太有經驗。 我想編寫一個基於Swing的窗口應用程序。 創建和執行類文件是可行的,但是在創建jar文件后,雙擊該文件不會執行。 我正在Windows 10(64位)上使用SE 1.8.0_131。
我的步驟如下:
我已經創建了這個測試文件
import java.awt.event.*;
import javax.swing.*;
public class SwingTest {
public static void main(String[] args){
JFrame mainWindow = getMainWindow();
mainWindow.setVisible(true);
}
public static JFrame getMainWindow(){
JFrame frame = new JFrame("Hauptfenster");
// Initialize Window
frame.setLayout(null);
frame.setSize(300, 300);
// Close application on window close
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
// Create and add Close-button
JButton exitButton = new JButton("Close");
exitButton.addActionListener(ae -> System.exit (0));
exitButton.setLocation(20, 20);
exitButton.setSize(100, 40);
frame.add(exitButton);
return frame;
}
}
然后我運行以下命令來創建類文件:
javac SwingTest.java
這成功創建了類文件,我可以使用以下命令執行它:
java SwingTest
我創建了一個名為SwingTest.mf的清單文件
Manifest-Version: 1.0
Main-Class: SwingTest
然后我運行以下命令來創建jar文件(我根據此stackoverflow post編寫了此命令)
jar cfm SwingTest.jar SwingTest.mf *.class
這創建了jar文件,但是當我雙擊該文件時,沒有任何反應(沒有窗口或CLI彈出或閃爍,任務中沒有任何進程出現)
創建可執行文件時我錯過了什么或做錯了什么?
抱歉,我們無法提供大量細節,謝謝
感謝所有的建議。 我發現了問題。
閱讀完此頁面后,我發現清單文件末尾缺少新行。 因此,我的類語句從未添加到jar文件中創建的清單中。 在我的Swingtest.mf末尾添加新行並運行以下命令后,它最終產生了一個可工作的jar文件
jar cfm SwingTest.jar SwingTest.mf SwingTest.class
似乎“ jar”擴展名與其他工具(如7-zip)相關聯。 請執行以下操作:在資源管理器中,單擊鼠標右鍵,在上下文菜單中選擇“使用...打開”。 有選擇導航到java.exe或更好的javaw.exe。 選中復選框以始終使用此關聯。 然后,下次當您雙擊Java時,將執行jar。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.