2017-01-06 39 views
1

このメソッドは正常なJavaプログラム(eclipseとcmd)で正常に実行されますが、Tomcat 8.5.9でこのメソッドを実行するとエラーが表示されます。クラスMain)。なぜそれが起こったのですか?手伝ってくれてありがとう。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:私はテストする方法

コピーし、別の通常のJavaプロジェクトとテストするには、この方法。それは(Hello World。)を示しています。有線

何か

私はこの質問を投稿した後、私はEclipseので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が私のクラスパスをcompling javaに変更しました!セキュリティのために独自のクラスパスを使用します。

関連する問題