わかりました。これは非常に一般的で非常に単純な質問ですが、私の場合はかなり珍しい状況が発生します。(インターネット上の他の場所で解決策を見つけることができなかった状況。)それで、私はプログラムでコンパイルしているいくつかのソースコードを持っていますJavaCompiler
。次に、コンパイルされたコードをランタイムで実行しようとします。(つまり、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()
ビット、ここに行きます。