2011-07-30 59 views
2

我想在我的Java應用程序中添加參數,然後再運行它。我希望能夠做財產以後這樣的:如何將參數添加到Java應用程序

public static void main(String args[]) 
{ 
    String document = args[0]; 
    new DocumentViewer(document); 
} 

我想要做的財產以後,當你點擊一個Word文檔,像它自身打開了文件,你不必打開Word,然後單擊打開。有誰知道如何添加參數?所有相關的答案appriciated!

+0

它是什麼樣的應用程序?你是否從命令行運行它? – Kal

+0

該應用程序顯示一個文檔,您可以編輯和保存,有點像單詞,我希望能夠點擊該文件並將文本作爲參數傳遞,以便我可以用該文檔啓動程序。 – gsfd

回答

3
java YourClass yourfile.xtx 

到您的程序與文件擴展名相關聯,因此,它被自動調用,您必須配置您的桌面環境(Linux)或視窗(Windows)中(我不知道OSX)。

我沒有在我的頭上,但據我記得,你結合的延長,XTX例如,具有啓動命令,像

java -cp C:\Programs\yourlibs\your.jar YourClass %1% 

如果你有或可以有更多的參數(標記多個文件,並將它們拖動到你的起動器)就可以了,據我所知,上去%9%:

java -cp C:\Programs\yourlibs\your.jar YourClass %1% %2% %3% 

%1%是用於第一個參數等等。 除了捕獲這些參數,你已經做了什麼,沒有什麼可以從Java做的。

在Linux上,你的起動器非常相似:

java -cp /usr/local/lib/your.jar YourClass $1 $2 $3 
+0

好吧,讓我們說我有一個名爲program.jar的可執行jar,我在基於windows的計算機上運行它,我怎麼能讓windows打開program.jar該文件的內容,我怎麼能做到這一點? – gsfd

+0

jarfile是傳遞文件內容的問題還是新想法?從命令行輸入file | java -jar your.jar傳遞內容而不是文件名,或者使用文件名「java -jar your.jar文件」。在第一種情況下,你必須從stdin(...'= new BufferedReader(System.in));'讀取。但是你不想以文本文件的內容作爲參數來開始你的程序 - 我不知道這個限制,但我無法想象從參數中讀取的數千字以上。 –

+0

我想將文件的內容作爲參數傳遞 – gsfd

3

如果你在命令行啓動您的應用你可以只通過一個空格隔開的參數應用程序名這樣之後:

java name_app arg1 arg2 etc... 
//the code above passes to name_app 3 strings: "arg1", "arg2", and "etc..." 

不知道你想要做什麼字,但我希望這是有幫助的。

+0

如果我正在運行一個罐子,我會如何做到這一點? – gsfd

+0

@John'java -jar name_jar arg1 arg2等' –

1

Java Web Start

..JWS提供了許多吸引人的功能,包括但不限於,閃屏,桌面集成,文件關聯,自動更新(包括更新的懶惰下載和編程控制),本地分區&按平臺,架構或Java版本的其他資源下載,運行配置(最低J2SE版本,運行時選項,RAM等),易於使用擴展管理公共資源。

對於演示。的文件關聯,請參閱JNLP API file service demo

0

您嘗試創建的應用程序是一個GUI應用程序,而主要方法所採用的參數用於命令行界面輸入。

其中string [] args是可以敘述CLI的許多參數的String數組。當然,您可以通過CLI和GUI程序的組合來實現該功能,但是隻能通過CLI啓動您的應用程序,這是沒有意義的。

另一個解決方法可以是。創建一個出現在開頭的演示框架,其中包含一些文本框,並讓用戶輸入您想要的參數,將該值傳遞給方法或您喜歡的數據類型。這樣你就可以擁有一個完整的GUI應用程序。