好吧,我知道這是一個非常普遍的,非常簡單的問題,但我的情況相當異常。 (我無法在互聯網上的其他地方找到解決方案的情況)。所以,我有一些源代碼,我正在編程通過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");
}
}
即使該代碼將不會執行。我仍然得到同樣的錯誤。在此先感謝您的幫助。 :)
*編輯:是 我走了詳細的步驟如下:
我開始在一個稱爲碼串上面提到的代碼。然後我創建一個File對象(在本例中爲Compiled.java)
我使用了一個自定義方法,我已經測試並確保它能夠編譯該文件(並可以從中獲取一個Class對象不過,由於具體的原因,我不能這樣做)。到一個.class文件中。 (使用
JavaCompiler
API。)然後我使用
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。
確保你給生成的.class文件的正確路徑命令。 – Juvanis
你確定?它運行在我的電腦上。 :/ – Ravi
@ steven-fontaine你能否提供確切的步驟,你如何嘗試運行和編譯代碼... – eis