2009-10-20 4 views
2

C# 응용 프로그램을 사용하여 Java 프로그램을 컴파일하고 실행하는 배치 파일을 호출하고 있습니다. (이 웹 사이트의 콘텐츠를 잡고 스크레이퍼 프로젝트입니다.) 배치 파일은 다음 명령으로 구성 내가 폴더를 더블 클릭에 갈 때이 배치 파일은 잘 작동C#에서 실행 파일을 호출 할 때의 문제

java -classpath core.jar;mysql.jar;realtouch.jar; com.parser.MainClass C:/wamp/www/C21_real2/properties http://www.realestate.com.au/realestate/agent/century+21+harbourside+neutral+bay/tzrjnd

배치 파일에. 내가 System.Diagnostics.Process를 사용하여 내 응용 프로그램을 통해이 실행 파일을 호출하고 때, 그것은 말한다 :

메인 클래스 com.parser.MainClass를 찾을 수 없습니다. 이제 프로그램이 종료됩니다.

그리고 명령 창이 몇 초 내에 종료됩니다. 다음과 같이

전 C#에서 프로그램을 호출 오전 :

Process batch = new Process(); 

    string pathtoRunFile="E:\\newFiles\\run.bat"; 

    batch.StartInfo.FileName = PathtoRunFile; 
    batch.StartInfo.Arguments = ""; 

    batch.StartInfo.UseShellExecute = true; 
    batch.Start(); 

    batch.WaitForExit(); 

누군가가 빨리 도와주세요. 나는 이것이 내 응용 프로그램에서 호출 할 때 왜 작동하지 않는지 혼란 스럽다. 나는 자바 개발자가 아니다. 그래서 내 메인 자바 프로그램에 문제가 있습니까? 그렇다면 어떻게 해결할 수 있을까요? 필요한 것은 C# 응용 프로그램에서 배치 파일을 실행하는 것입니다. 다음

newfiles 폴더 구조는 (파일만을 포함)

  • core.jar를
  • mysql.jar
  • realtouch.jar
run.bat를

답변

9

작업 디렉토리를 설정하십시오 :

batch.StartInfo.WorkingDirectory = "E:\\newFiles"; 
+0

내 대답 (- : – Murph

2

아마도 경로 문제 - 디렉토리 트리에서 을 호출하는 프로그램과 현재 위치가 다른 위치와 배치 파일의 위치가 다를 수 있습니다.

테스트하려면 명령 프롬프트를 열고 이 아닌이 e : \ newFiles에 있는지 확인하고 e : \ newFiles \ run.bat를 실행하십시오. 동일한 방식으로 실패 할 것으로 예상됩니다.

a) "com.parser.MainClass"에 경로를 추가하거나 b) C# 응용 프로그램에서 현재 디렉토리를 설정해야합니다.

0

newFiles 폴더를 현재 디렉토리로 설정해야 Java 가상 머신이 파일을 찾을 수 있습니다. 이 파일을 배치 파일에 추가하십시오 :

E: 
cd E:\newFiles\ 
관련 문제