2017-11-23 5 views
0

)実行可能なJARファイルを実行しようとしていますが、jreバージョン1.8。 CMDからこのコマンドを手動で実行すると、jreバージョンが1.8になっています。 set path = c:¥Project Work¥jdk1.8.0_66-x64¥jre¥bin;%PATH%設定パスの実行方法= c: Project Work jdk1.8.0_66-x64 jre bin;%PATH%コマンド(C#

このコマンドはどのようにC#から実行できますか。次のコードを試してみましたが、C#からコマンドを実行できませんでした。

try 
      { 
       string command = "set path=c:\\Project Work\\jdk1.8.0_66-x64\\jre\bin;%PATH%"; 
       System.Diagnostics.ProcessStartInfo procStartInfo = 
        new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command); 



       procStartInfo.RedirectStandardOutput = true; 
       procStartInfo.UseShellExecute = false; 

       procStartInfo.CreateNoWindow = true; 

       System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
       proc.StartInfo = procStartInfo; 
       proc.Start(); 

       string result = proc.StandardOutput.ReadToEnd(); 

       Console.WriteLine(result); 
       Console.WriteLine(procStartInfo.WorkingDirectory); 
       Console.ReadLine(); 
      } 
      catch (Exception objException) 
      { 
       // Log the exception 
      } 

コマンドを実行するために入力を入力してください。

+2

代わりに 'Environment.SetEnvironmentVariable'を使用してください。 – Evk

+1

@Evkでは、変数を 'ProcessStartInfo'の' Environment'プロパティに追加することもできます。そうすることで、呼び出しプロセスの環境を汚染することはありません。しかし、この特定のケースでは大したことではありません。 – Joey

+0

@Joeyは情報をありがとう、それを知らなかった – Evk

答えて

0

以下の手順でコマンドを実行できます 1. コマンドを使用してバッチファイルを作成しました。set path = c:\ Project Work \ jdk1.8.0_66-x64 \ jre \ bin;% PATH% 2.バッチファイルに名前を付け、C#プログラムからバッチファイルを次のように実行しました。

string abc = "abc"; 
     string def = "123"; 
     System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
     proc.StartInfo.FileName = "C:\\Users\\90008121\\Desktop\\ClassPathbatch.bat"; 
     proc.StartInfo.Arguments = String.Format("{0} {1}", abc, def); 
     proc.StartInfo.RedirectStandardError = false; 
     proc.StartInfo.RedirectStandardOutput = false; 
     proc.StartInfo.UseShellExecute = false; 
     proc.Start(); 
     proc.WaitForExit(); 
     Console.ReadLine(); 

3.最後に要件が満たされています。

関連する問題