좋아,이 질문은 매우 일반적이며 매우 간단한 질문이지만, 다소 이상한 상황이 있습니다. (인터넷상의 다른 곳에서 해결책을 찾을 수 없었던 상황). 그래서, 나는 프로그래밍 방식으로 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 파일로. (
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
당신은 확실합니까 ?? 그것은 내 PC에서 실행. :/ – Ravi
@ steven-fontaine 코드를 실행하고 코드를 컴파일하는 방법에 대한 정확한 단계를 제공 할 수 있습니까? – eis