2012-03-09 39 views
9

我已經使用Java創建了一個文本編輯器,並使用Netbeans將它打包在一個jar文件中。 現在我創建了一個文本文件,擴展名爲「.text」。 我在Windows 7上,所以使用它的屬性窗口,我將默認打開程序更改爲我的文本編輯器的jar文件。使用Java應用程序作爲特定文件類型的默認程序?

現在,當我用「.text」擴展名雙擊該文件時,窗口顯示一個對話框,指出「{文件名}不是有效的win32應用程序」。

請幫我解決它..

謝謝。

+3

應該不是爲.txt – nist 2012-03-09 10:54:43

+0

如果我讓txt文件,它用記事本打開,我不想擴展名爲.txt的默認設置混亂。所以我改變了我的文字編輯器的擴展與.text區段 – Jaydeep 2012-03-09 10:57:54

+0

上述問題只是一個實驗,我試圖用我的文本編輯器的.text文件關聯,但我以前不工作,那麼我發佈了關於如何文件關聯問題擴展,以便它使用它的Stackoverflow上的jar文件在我的文本編輯器中打開相應的文件,(沒有得到滿意的答案),然後刪除了問題。 – Jaydeep 2012-03-09 11:01:16

回答

11

的問題是,一個JAR文件被選定爲 「默認應用程序」。但是,JAR文件通常是而不是可執行文件。 也就是說,JAR文件是而不是有效的Windows應用程序。 JAR擴展本身是否有與之相關的默認應用程序並不重要,因爲"Open verb"而不是在其他「Open verb」定義中遞歸使用。

相反,

  1. 創建一個批處理(「.BAT」)文件(或小的EXE包裝)調用java(或javaw,酌情而定),並使用該可執行包裝器程序的‘打開方式’ 。 (這如果使用批處理文件將有一個惱人的中間控制檯窗口。)或者
  2. Modify the registry,使「開放式動詞」爲擴展名通過java(或javaw)啓動JAR

最後,任何一種形式應該看起來類似於:javaw -jar TheJarFile.jar "%1%"。 (請注意,javaw是可執行文件,而TheJarFile.jar而不是的可執行文件。)

請參閱java - the Java application launcher瞭解如何使用java/javaw。

+0

謝謝你!我得到它的工作,創建了一個exe罐子:) – Jaydeep 2012-03-09 12:25:07

+0

@Jaydeep酷:-)你用哪個工具來做到這一點? – 2012-03-09 12:26:57

+0

我使用Caphyon的「高級安裝程序」...得說,偉大的工具! – Jaydeep 2012-03-09 13:05:54

-1

可能是因爲.text不是可執行文件。

嘗試使用這個..

Runtime.getRuntime().exec("cmd.exe /C file"); 

這將打開你的文件的默認程序。

更新:我第一次感到困惑,可能是我沒有正確地讀你的問題。我以爲你直接從Java代碼執行的.text文件..

Runtime.getRuntime().exec("file.text"); //給出錯誤CreateProcess的錯誤= 193%1不是有效的Win32應用程序

所以我建議用CMD打開它(如回答)。

但是讀你的情況,它似乎Windows無法執行你自己的jar。

爲了使您的JAR可執行文件,試試這個..

java -jar yourjarfile.jar ....

+0

其實,我是一個新手,所以你可以請告訴我在哪裏寫上述語法.. – Jaydeep 2012-03-09 11:24:54

+0

嗯......我想什麼pst說有道理....先試試這個... java -jar yourjar。 jar ........這會讓你的jar可執行文件...然後嘗試.. – 2012-03-09 12:15:03

0

使用Java Web Start啓動Jar。啓動文件提供了設置文件/內容類型關聯的功能。這裏是一個demo. of the file services的..

..prompts用戶文件擴展名.zzz(一個簡單的文件類型不會與現有的文件關聯到衝突)內容類型text/sleepytime的關聯。 ..

要做到這一點,在一個JWS應用程序運行時,尋找到1.6.0_18 +引入了IntegrationService

JWS設計用於Windows(和OS X & * nix)。

相關問題