2016-11-07 12 views
-3
package com.alter.change.on.demand.jobs; 

import java.io.File; 
import java.io.IOException; 

public class HelloWorld { 

    public static void main(String args[]){ 
     for(int i = 0; i<5 ; i++){ 
      System.out.println("Helloo"); 
     } 

     Process process = null; 
     ProcessBuilder pb = new ProcessBuilder(new String[]{"java" + " " + "com.alter.change.on.demand.jobs.HelloWorld2"}); 

     try { 
      process = pb.start(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     try { 
      process.waitFor(); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
     int exitVal = process.exitValue(); 
     System.out.println(exitVal); 
    } 
} 

にjava.io.IOException:プログラムの "Java com.alter.change.on.demand.jobs.HelloWorld2" を実行できません:エラー= 2、そのようなファイルやディレクトリはありません

package com.alter.change.on.demand.jobs; 
    public class HelloWorld2 { 

    public static void main(String[] args){ 
     System.out.println("Main 2..testing"); 
    } 
} 

java.io.IOException: Cannot run program "java com.alter.change.on.demand.jobs.HelloWorld2": error=2, No such file or directory

at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)

at com.alter.change.on.demand.jobs.HelloWorld.main(HelloWorld.java:22)

Caused by: java.io.IOException: error=2, No such file or directory

at java.lang.UNIXProcess.forkAndExec(Native Method)

at java.lang.UNIXProcess.(UNIXProcess.java:248)

at java.lang.ProcessImpl.start(ProcessImpl.java:134)

at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)

... 1 more

Exception in thread "main" java.lang.NullPointerException

at com.alter.change.on.demand.jobs.HelloWorld.main(HelloWorld.java:28)

カンマ(、)とProcessBuilderを渡された値を-Separating
+0

パッケージに入っているため、誤ったフォルダからコンパイルしている可能性があります。 'com.alter.change.on.demand.jobs;' com.alter.change.on.demand.jobs;という行を削除してください。 –

+0

エラー:パッケージcom.alter.change.on.demand.jobs;がメインクラスHelloWorldを見つけられませんでした。削除されました –

+0

これらはどちらも同じファイルにありますか?どのようにこれを実行していますか? 'javac HelloWorld.java'と' java HelloWorld'を実行する必要があります。 –

答えて

0
package com.alter.change.on.demand.jobs; 

    import java.io.IOException; 

    public class HelloWorld { 

    public static void main(String args[]){ 
    for(int i = 0; i<5 ; i++){ 
    System.out.println("Helloo"); 
    } 
    Process process = null; 
    ProcessBuilder pb = new ProcessBuilder(new String[]{"java","com.alter.change.on.demand.jobs.HelloWorld2"}); 

    try { 
    process = pb.start(); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } 
    try { 
    process.waitFor(); 
    } catch (InterruptedException e) { 
    e.printStackTrace(); 
    } 
    int exitVal = process.exitValue(); 
    System.out.println(exitVal); 
    } 
    } 

は私のために働いても、javaコマンドは、クラスファイルを含むディレクトリから実行されていることを確認すること。 - コマンドラインから実行するときに、パッケージ名の後にクラス名を続けなければなりませんでした。この場合、例:java com.alter.change.on.demand.jobs.HelloWorldディレクトリにクラスファイルが含まれているか、クラスファイルが存在するディレクトリのパスを提供するために-cpオプションを使用する必要があります)

関連する問題