2011-05-12 12 views
3

C#에서 Java 배치 파일을 실행 중입니다. 나는 그것이 성공적으로 실행 더블 클릭하여 실행하면 내가 C# 코드에서 실행하면,하지만 ... 주 "실 java.lang.NoClassDefFoundError가" "예외"스레드에서배치 파일 실행 C#

를 예외를 제공

이유가 무엇이며 어떻게 해결 될 수 있습니까? 코드를 사용 중입니다 :

var si = new ProcessStartInfo(); 

si.CreateNoWindow = true; 
si.FileName = "batch-file path"; 
si.UseShellExecute = true; 

Process.Start(si); 
+1

작업 디렉토리가 Java 응용 프로그램과 관련 될 수 있다고 생각합니다. – Heinzi

답변

1

시스템 환경 변수에 포함될 매개 변수 중 일부가 누락되었을 가능성이 높습니다. 여기에 언급 한 바와 같이이

process.StartInfo.WorkingDirectory = "C:\"; 

같은

+1

자세한 내용을 자세히 설명해 주시겠습니까? – mucchar

+0

당신이 실행하려고하는 Java 프로그램에 대해 아무 것도 모르기 때문에 나는 정말로 그럴 수 없습니다. 그러나이 다른 OS 기사는 시작하는 데 도움이 될 수 있습니다. http://stackoverflow.com/questions/318239/how-do-i-set-environment-variables-from-java –

0

시도가 배치 파일의 첫 번째 줄에 다음 코드를 추가, 몇 가지 다른 옵션을 시도합니다.

@cd /d %~dp0 
0

대신 경로를 올바르게 사용하려면 Path_Combine()을 사용하여 batch_process_path + "\"+를 사용하지 마십시오.

또한 read this

그래서 거짓으로 설정 "인 UseShellExecute가 true 인 경우, WORKINGDIRECTORY 속성은 실행 파일의 위치를 ​​지정합니다."