2017-11-23 6 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; C에서 % PATH % 명령

어떻게 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

@ 조이 정보를 주셔서 감사합니다. – 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. 마지막으로 요구 사항이 충족됩니다.