2013-10-31 15 views
0

我想在cmd(命令提示符)上使用C#windows應用程序運行特定的代碼以獲得符號jar文件。 我用這個代碼C#System.Diagnostics.Process.Start Cmd Jarsigner

System.Diagnostics.Process.Start(@"cmd", @"/K ""c:\program Files\Java\jdk1.6.0_23\bin\jarsigner.exe"" -keystore filepath.p12 filepath.jar ""alias_name"""); 

而我執行這個代碼,我遇到這個錯誤

錯誤:

'c:\program' is not recognized as an internal or external command, 
operable program or batch file. 

我怎樣才能解決這個問題?

+0

無法重現:我使用了System.Diagnostics.Process.Start(@「cmd」,@「/ K」「c:\ program files \ winrar \ winrar.exe」「tc:\ test。 rar「);'和它按預期工作... –

+0

這段代碼工作。但我的jarsigner.exe命令不工作。如果我直接寫入cmd,代碼工作並要求輸入jar簽名的密碼。 但是我在從Visual Studio執行時遇到這個錯誤 – dgn

+0

任何不具有System.Diagnostics.Process.Start(@「c:\ program files \ Java \ jdk1.6.0_23 \ bin \ jarsigner.exe」,@「 -keystore filepath.p12 filepath.jar「」alias_name「」「);'? –

回答

1

從上面的評論,我理解這解決了這個問題:

System.Diagnostics.Process.Start(@"c:\program Files\Java\jdk1.6.0_23\bin\jarsigner.exe", 
    @"-keystore filepath.p12 filepath.jar ""alias_name"""); 

快樂簽署。 ;-)

+0

執行此代碼後,jarsigner要求輸入密碼。如果我寫密碼,cmd屏幕消失。我搜索了一些網站這個。它說把「/ K」關鍵字。我可以用這個代碼/ K? – dgn

+0

「/ K」選項用於「cmd」過程,與jarsigner沒有特別的關係。但是如果你真的想使用'cmd',你可以將''c:\ program Files \ Java \ jdk1.6.0_23 \ bin \ jarsigner.exe「-keystore filepath.p12 filepath.jar」alias_name「'寫入批處理文件(比如說「signfile.bat」),然後執行'Process.Start(「cmd」,「/ K signfile.bat」)...... HTH。 –

+0

如果您想停止jarsigner詢問密碼,則需要按照以下內容包含_storepass_開關。 'System.Diagnostics.Process.Start(@「c:\ program files \ Java \ jdk1.6.0_23 \ bin \ jarsigner.exe」, @「 - keystore filepath.p12 -storepass TheStorePassword filepath.jar」「alias_name 「」「);' HTH :) –