簡體   English   中英

可執行的jar文件不執行

[英]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。

  1. 創建新文件夾並將其放置在SwingTest.java
  2. 然后編譯您的類javac SwingTest.java
  3. 在其中創建文件夾META-INFMANIFEST.MF文件,並包含以下內容

    清單版本:1.0
    主類:SwingTest

  4. 運行以下命令jar cfm SwingTest.jar META-INF/MANIFEST.MF *.class

  5. 雙擊SwingTest.jar並享受。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM