2017-01-06 4 views
1

일반 Java 프로그램 (eclipse 및 cmd)에서이 메소드를 성공적으로 실행했지만 Tomcat 8.5.9에서이 메소드를 실행하면 오류가 표시됩니다 (오류 : 클래스 메인). 왜 그런 일이 일어 났습니까? 도와 주셔서 감사합니다. ProcessBuilder Java가 성공적으로 시작되었지만 Tomcat이 성공적으로 시작되지 않았습니다.

public synchronized static String run(SourceCode sourceCode) { 
    try { 
     ProcessBuilder java = new ProcessBuilder("java", "Main"); 
     File file = new File("C:\\apache-tomcat-8.5.9\\webapps\\onlineJudge\\data\\Piers\\1\\1483703529849"); 
     java = java.directory(file); 
     java = java.redirectErrorStream(true); 
     Process process = java.start(); 
     List<String> list = java.command(); 
     try (Scanner in = new Scanner(process.getInputStream())) { 
      System.out.println(in.nextLine()); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

Dir: C:\apache-tomcat-8.5.9\webapps\onlineJudge\data\Piers\1\148370352984

File in Dir: Main.class, Main.java(code below)

public class Main{ 

    public static void main(String args[]){ 
     System.out.println("Hello World."); 
    } 
} 

PS :

내가 테스트 방법 :

복사 다른 일반 자바 프로젝트 및 테스트에이 방법. 그것은 (Hello World.)를 보여줍니다.

는 뭔가 나는이 질문을 게시 한 후

유선, 나는 이클립스를 Tomcat을 실행합니다. 전에는 cmd (시작 명령 사용)의 Tomcat을 실행했습니다. 메소드를로드 할 때 (public synchronized static String run (SourceCode sourceCode)) 성공적으로 실행됩니다! 어떻게 된 거예요?

감사합니다.

+0

정규화 된 이름이'Main'입니까? 'Main'은 어떤 패키지입니까? – Stik

+0

C : \ apache-tomcat-8.5.9 \ webapps \ onlineJudge \ data \ Piers \ 1 \ 1483703529849의 내용을 인쇄 할 수 있습니까? –

+0

질문을 업데이트합니다. 제발 좀 봐 주시겠습니까? – Piers

답변

0

저는 저자입니다. Tomcat이 내 classpath을 java로 변경 한 것을 발견했습니다! 보안을 위해 자체 클래스 경로을 사용합니다.