2012-05-10 34 views
3

我一直在爲這個問題苦苦掙扎了一段時間。我發現了thisthis,但這些解決方案根本不適用於我。雙擊啓動時無法從jar打開資源

我的罐子可以完美兼容Java的罐子在命令提示符下,但是當涉及到雙擊,打開一個JFrame窗口,但這些失敗:

Scanner fileLat = new Scanner(a.getClass().getResourceAsStream("/motor/resources/lat.txt")); 
Scanner fileLong = new Scanner(a.getClass().getResourceAsStream("/motor/resources/long.txt")); 

上的空指針異常和資源不造成哪些被發現。

我的目錄結構(罐內)看起來是這樣的:

/ (root) 
|- META-INF 
|- motor 
|- main 
    |- Main.class 
|- resources 
    |- lat.txt 
    |- long.txt 

我的MANIFEST.MF內容如下:

Manifest-Version: 1.0 
Class-Path: . 
Main-Class: motor.main.Main 

編輯: 我只是試圖this(especifically中, jar:file:MyJar.jar!/ etc ...),但它也不起作用。

+0

你目前的目錄是什麼? 「班級路徑:」看起來很可疑。 – Vlad

+0

在Windows上雙擊文件會將其固定到該文件的目錄,不是嗎?我想是這樣。對於命令提示符是不同的,但它的工作原理。 – Nirro

+0

嗯,我不確定。嘗試將當前目錄輸出到控制檯或程序啓動時的某個文件。 – Vlad

回答

0

您是否試圖從清單中刪除Class-Path? 在我這裏的例子中,定義類路徑並不常見:許多應用程序(包括jEdit和jExt安裝程序)都會在沒有它的情況下運行。

你也可以嘗試添加一個空的。

+0

沒有定義類路徑遊戲我錯誤,讓它空白給了我一個不同的 空白時「無效或損壞的jarfile」 「無法從C:\ Users \ Nirei \ Downloads \ EarthClock.jar加載主類清單屬性」,當沒有Class-Path attrib。 – Nirro