2009-10-20 72 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(); 

請人幫我儘快。我真的很困惑,爲什麼這不起作用,當我從我的應用程序調用它。我不是一個Java開發人員。那麼這是我的主要Java程序的問題嗎?如果是的話如何解決這個問題?我需要的是從我的C#應用​​程序運行批處理文件。

newfiles文件夾的結構如下:(只包含文件)

  • core.jar添加
  • 的mysql.jar
  • realtouch.jar
  • 的run.bat

回答

9

設置工作目錄:

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

打我的答案( - : – Murph 2009-10-20 08:12:51

2

它可能是一個路徑問題 - 你的目錄樹中調用程序作爲其當前目錄和批處理文件的位置之間的差異。

要測試,請打開命令提示符,確保您在而不是在e:\ newFiles中並運行e:\ newFiles \ run.bat - 我期望它以相同的方式失敗。

要解決您的問題,需要a)將路徑添加到「com.parser.MainClass」或b)在C#應用程序中設置當前目錄。

0

您可能需要將您的newFiles文件夾設置爲當前目錄,以便Java虛擬機可以找到您的文件。嘗試添加到您的批處理文件:

E: 
cd E:\newFiles\ 
相關問題