2017-01-25 121 views
0

我正在開發一個C#應用程序,它有權訪問控制檯來運行java命令並執行特定的jar,但是當我運行該程序時,正在執行的jar文件在程序輸出上生成他的文件,如日誌和配置,但我想運行已經在他的文件的特定文件夾中的jar 問題是我嘗試了很多java參數,但是從jar生成的輸出文件每次都會從我的visual studio項目中進入Debug文件夾 Hope任何人都能理解我,我非常困惑和爲我的英語感到抱歉,我是巴西人 現在,感謝您的支持!Jar文件類路徑問題

+2

您應該設置當前工作目錄與調用的程序在調用它之前所期望的內容。 –

+0

是的,我只是想一想,但我如何設置jar的工作目錄?我嘗試使用-cp參數,但沒有結果 –

+0

您必須在調用java命令的周圍環境中執行此操作。 –

回答

2

我只能猜測,因爲缺少用於在C#程序中調用java程序的代碼行。目前還不清楚你想要達到什麼目的。決定是在更改孩子還是主流程中的「當前工作目錄」。

子進程

我假設你想使用類似的代碼來執行這樣的事情java -jar path\to\some.jar:從here

改編

using System.Diagnostics; 
//... 

ProcessStartInfo p = new ProcessStartInfo(); 
p.Arguments = new string[]{"-jar", "path\to\some.jar"; 
p.FileName = "java.exe"; 
p.WindowStyle = ProcessWindowStyle.Hidden; 
p.CreateNoWindow = true; 

using (Process proc = Process.Start(start)) 
{ 
    proc.WaitForExit(); 
} 

然後,你可以加入這一行

p.WorkingDirectory = "path\to"; 

改編自here

p實例覆蓋與特定的當前工作目錄設置你的孩子的過程。這將設置當前工作目錄以調用java子進程。

主要工藝

要設置爲周圍的主要工序中當前的工作目錄此行添加到您的程序:

System.IO.Directory.SetCurrentDirectory("some\other\path"); 

MSDN文檔SetCurrentDirectory