2012-12-27 56 views
1

好吧,我知道這是一個非常普遍的,非常簡單的問題,但我的情況相當異常。 (我無法在互聯網上的其他地方找到解決方案的情況)。所以,我有一些源代碼,我正在編程通過JavaCompiler進行編譯。然後我嘗試使用Runtime執行編譯的代碼。 (也就是說,Runtime.getRuntime().exec(String[]))然而,當我嘗試執行該程序代碼時,我得到Could not find or load main class.有問題的源代碼遵循這一基本模式:無法找到或加載主類 - 在特殊情況下

package compiledCode; 
public class Compiled 
{ 
    public Compiled(){} 
    public static void main(String[] args) 
    { 
     System.out.println("Hello!! ;D"); 
    } 
} 

即使該代碼將不會執行。我仍然得到同樣的錯誤。在此先感謝您的幫助。 :)

*編輯:是 我走了詳細的步驟如下:

  1. 我開始在一個稱爲碼串上面提到的代碼。然後我創建一個File對象(在本例中爲Compiled.java)

  2. 我使用了一個自定義方法,我已經測試並確保它能夠編譯該文件(並可以從中獲取一個Class對象不過,由於具體的原因,我不能這樣做)。到一個.class文件中。 (使用JavaCompiler API。)

  3. 然後我使用Runtime.getRuntime.exec(new String[]{"java",[location of .class file]});來執行它。

正是在這一點上,我得到一個錯誤。

我使用的確切的代碼,按要求,是這個..

ClassFileHelper.toClass(src, "C:/Users/Steven/Desktop/ /Eclipse/Workspace/RoccedGame/ServiceCoder", "ServiceCoder"); 
System.out.println("java "+src.getAbsolutePath().substring(0,src.getAbsolutePath().lastIndexOf(".java"))+".class"); 
final Process p = Runtime.getRuntime().exec(new String[]{"java",src.getAbsolutePath().substring(0,src.getAbsolutePath().lastIndexOf(".java"))+".class"}); 

在第3行中的字符串操作是有點亂,但我已經三檢查,以確保它的工作原理 - 它所做的。如果你想看到的代碼。 toClass()位,去here

+0

確保你給生成的.class文件的正確路徑命令。 – Juvanis

+1

你確定?它運行在我的電腦上。 :/ – Ravi

+3

@ steven-fontaine你能否提供確切的步驟,你如何嘗試運行和編譯代碼... – eis

回答

相關問題