2013-03-02 72 views
-1

我已經創建了一個基本的Noughts and Crosses遊戲,它從用戶接收文本輸入以確定X/O將放置在哪裏(所有內容都使用System.out在屏幕上打印)以及它在BlueJ中工作正常,但是當我創建一個.jar文件時,它不會顯示屏幕或執行任何操作。我的.jar文件沒有執行

有什麼想法我做錯了什麼?

編輯:

這是在Windows 7上運行,我試圖運行通過雙擊.jar文件的應用程序。

大約6年前我通過uni學習了基本的java,並且正在重新教授自己,因此運行該應用程序時的不確定性。爲了澄清,任何可執行文件都需要包含一個自創的清單?

+0

你是如何從你的.jar文件啓動應用程序的? – 2013-03-02 04:56:14

+0

這是一款基於文本的遊戲 - 只需雙擊.jar文件即可運行它。 – Aeolos 2013-03-02 21:07:32

回答

0

您是否在罐子的Manifest中定義了Main-Class:條目?如果不是,那麼這裏有關於這個專題的一些資源:

* http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html 
* http://stackoverflow.com/questions/9689793/cant-execute-jar-file-no-main-manifest-attribute 

什麼操作系統和應用程序是什麼,你的jar文件雙擊?通常,每個系統(例如Windows資源管理器)都需要配置一個關聯,以便在雙擊時知道您希望它執行的操作。也許這種關聯缺失,所以沒有程序運行。

如果您的環境確實在jar文件上運行java,並且您在清單中指定了Main-Class,但在您的圖形環境中沒有出現窗口,那麼您的環境很可能不知道您打算該程序將在控制檯中運行。您可能需要調整關聯的程序,以便它在控制檯或終端程序中運行java,以使其stdout可見。 (我個人通常在Ubuntu上打開一個終端,並在提示符下運行'java -jar')

+0

Manifest-Version:1.0 Class-Path: Main-Class:NoughtsAndCrosses 清單中目前是什麼。我嘗試通過雙擊文件(使用Windows 7)來運行 – Aeolos 2013-03-02 21:45:42

+0

好吧,經過多次搜索後,答案的最後一部分就是我的問題。我將不得不創建一個jFrame。乾杯 – Aeolos 2013-03-02 22:11:00

+0

將Swing GUI添加到您的應用程序是解決它的一種方法。我不能說我知道Windows 7的詳細信息,但我知道在Windows上有兩種JRE變體:java.exe和javaw.exe。也許當你雙擊Windows資源管理器使用javaw而不是java?不同的是,一個是不需要DOS控制檯的Windows GUI應用程序,另一個是Windows/DOS應用程序,我相信它將顯示DOS控制檯並使您的輸出顯示爲標準輸出。 – dsh 2013-03-02 22:14:41