简体   繁体   English

如何运行类java使用runtime.exec()?

[英]how to run class java use runtime.exec()?

I must run a class java by another program java use runtime.exec(). 我必须通过另一个程序java使用runtime.exec()运行一个类java。 A class in folder diffefent with my program so i cannot run it. 文件夹中的类与我的程序不同,所以我无法运行它。 I used (java -cp "directory" class) but a my class has import file so it cannot filenotfound? 我使用了(java -cp“ directory”类),但是我的类具有导入文件,因此无法filenotfound? Who can help me? 谁能帮我?

Process pro = Runtime.getRuntime().exec("java -cp \\"E:\\DA_Laptrinhmang\\" NguyenTo"); 流程pro = Runtime.getRuntime()。exec(“ java -cp \\” E:\\ DA_Laptrinhmang \\“ NguyenTo”);

Here is program: 这是程序:

import java.io.*;
import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;
public class TestCodeJava {
  private static void printLines(String name, InputStream ins) throws Exception {
    String line = null;
    BufferedReader in = new BufferedReader( new InputStreamReader(ins));
    while ((line = in.readLine()) != null) {
        System.out.println(name + " " + line);
    }
  }
  private static void runProcess(String command) throws Exception {
    Process pro = Runtime.getRuntime().exec(command);
    BufferedReader reader = new BufferedReader(new InputStreamReader(pro.getInputStream()));
    pro.waitFor();
    String line = "";
    while((line = reader.readLine())!=null)
    {
        System.out.println(line);
    }
  }
  private static int toCompile(String fileToCompile)
  {
      JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
      int compilationResult = compiler.run(null,  null, null, "-verbose", fileToCompile);
      return compilationResult;
  }
  public static void main(String[] args) {
    try {
      if(toCompile("E:\\Folder\\Prime.java")==0)
      {
         runProcess("java -cp \"E:\\Folder\" Prime");
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

    import java.io.*;
    public class Prime {
    private static boolean isPrime(int n)
    {
        if(n <= 1) return false;
        if(n == 2 || n == 3) return true;
        int m = (int) Math.sqrt(n);
        for(int i = 5; i <= m; i = i + 5)
            if(n % i == 0 || n % (i+2) == 0) return false;
        return true;
    }
    public static void main(String args[]) throws FileNotFoundException, IOException
    {
        File file = new File("INPUT.TXT");
        FileInputStream fis = new FileInputStream(file);
        BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
        int n = Integer.parseInt(reader.readLine());
        File file2 = new File("OUTPUT.TXT");
        FileOutputStream fos = new FileOutputStream(file2);
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(fos));
        if(isPrime(n))
        {
            writer.write("YES");
        }else writer.write("NO");
        writer.flush();
        writer.close();
    }
}

here is error: [parsing started RegularFileObject[E:\\DA_Laptrinhmang\\NguyenTo.java]] [parsing completed 42ms] [search path for source files: C:\\Users\\QUANG HUY\\Documents\\NetBeansProjects\\ChamDiemJava\\build\\classes,C:\\Users\\QUANG HUY\\Documents\\NetBeansProjects\\ChamDiemJava\\src] [search path for class files: C:\\Program Files\\Java\\jdk1.7.0\\jre\\lib\\resources.jar,C:\\Program Files\\Java\\jdk1.7.0\\jre\\lib\\rt.jar,C:\\Program Files\\Java\\jdk1.7.0\\jre\\lib\\sunrsasign.jar,C:\\Program Files\\Java\\jdk1.7.0\\jre\\lib\\jsse.jar,C:\\Program Files\\Java\\jdk1.7.0\\jre\\lib\\jce.jar,C:\\Program Files\\Java\\jdk1.7.0\\jre\\lib\\charsets.jar,C:\\Program Files\\Java\\jdk1.7.0\\jre\\classes,C:\\Program Files\\Java\\jdk1.7.0\\jre\\lib\\ext\\dnsns.jar,C:\\Program Files\\Java\\jdk1.7.0\\jre\\lib\\ext\\localedata.jar,C:\\Program Files\\Java\\jdk1.7.0\\jre\\lib\\ext\\sunec.jar,C:\\Program Files\\Java\\jdk1.7.0\\jre\\lib\\ext\\sunjce_provider.jar,C:\\Program Files\\Java\\jdk1.7.0\\jre\\lib\\ext\\sunmscapi.jar,C:\\Program Files\\Java\\jdk1.7.0\\jre\\lib\\ext\\sunpkcs11.jar,C:\\Progr 这是错误:[解析开始的RegularFileObject [E:\\ DA_Laptrinhmang \\ NguyenTo.java]] [解析完成的42ms] [源文件的搜索路径:C:\\ Users \\ QUANG HUY \\ Documents \\ NetBeansProjects \\ ChamDiemJava \\ build \\ classes,C :\\ Users \\ QUANG HUY \\ Documents \\ NetBeansProjects \\ ChamDiemJava \\ src] [类文件的搜索路径:C:\\ Program Files \\ Java \\ jdk1.7.0 \\ jre \\ lib \\ resources.jar,C:\\ Program Files \\ Java \\ jdk1.7.0 \\ jre \\ lib \\ rt.jar,C:\\ Program Files \\ Java \\ jdk1.7.0 \\ jre \\ lib \\ sunrsasign.jar,C:\\ Program Files \\ Java \\ jdk1.7.0 \\ jre \\ lib \\ jsse。 jar,C:\\ Program Files \\ Java \\ jdk1.7.0 \\ jre \\ lib \\ jce.jar,C:\\ Program Files \\ Java \\ jdk1.7.0 \\ jre \\ lib \\ charsets.jar,C:\\ Program Files \\ Java \\ jdk1.7.0 \\ jre \\ classes,C:\\ Program Files \\ Java \\ jdk1.7.0 \\ jre \\ lib \\ ext \\ dnsns.jar,C:\\ Program Files \\ Java \\ jdk1.7.0 \\ jre \\ lib \\ ext \\ localedata。 jar,C:\\ Program Files \\ Java \\ jdk1.7.0 \\ jre \\ lib \\ ext \\ sunec.jar,C:\\ Program Files \\ Java \\ jdk1.7.0 \\ jre \\ lib \\ ext \\ sunjce_provider.jar,C:\\ Program Files \\ Java \\ jdk1.7.0 \\ jre \\ lib \\ ext \\ sunmscapi.jar,C:\\ Program Files \\ Java \\ jdk1.7.0 \\ jre \\ lib \\ ext \\ sunpkcs11.jar,C:\\ Progr am Files\\Java\\jdk1.7.0\\jre\\lib\\ext\\zipfs.jar,C:\\Users\\QUANG HUY\\Documents\\NetBeansProjects\\ChamDiemJava\\build\\classes,C:\\Users\\QUANG HUY\\Documents\\NetBeansProjects\\ChamDiemJava\\src] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/lang/Object.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/lang/String.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/io/FileNotFoundException.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/io/IOException.class)]] [checking NguyenTo] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/lang/AutoCloseable.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/lang/Math.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk 是Files \\ Java \\ jdk1.7.0 \\ jre \\ lib \\ ext \\ zipfs.jar,C:\\ Users \\ QUANG HUY \\ Documents \\ NetBeansProjects \\ ChamDiemJava \\ build \\ classes,C:\\ Users \\ QUANG HUY \\ Documents \\ NetBeansProjects \\ ChamDiemJava \\ src] [正在加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / lang / Object.class)]] [正在加载ZipFileIndexFileObject [C :: \\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / lang / String.class)]] [加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1 .7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / io / FileNotFoundException.class)]] [正在加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym (META-INF / sym / rt.jar / java / io / IOException.class)]] [检查NguyenTo] [正在加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF /sym/rt.jar/java/lang/Au​​toCloseable.class)]] [加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java /lang/Math.class)]] [加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk 1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/lang/Exception.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/lang/Throwable.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/io/File.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/net/URI.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/io/FileInputStream.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/io/FileDescriptor.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/io/BufferedReader.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/io/InputStreamReader.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.s 1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / lang / Exception.class)]] [加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct。 sym(META-INF / sym / rt.jar / java / lang / Throwable.class)]] [加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / io / File.class)]] [加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / net / URI.class)]] [正在加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / io / FileInputStream.class)]] [正在加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / io / FileDescriptor.class)]] [正在加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / io / BufferedReader.class)]] [加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / io / InputStreamReader.class)]] [加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.s ym(META-INF/sym/rt.jar/java/io/InputStream.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/io/Reader.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/lang/Integer.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/lang/Number.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/io/FileOutputStream.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/io/BufferedWriter.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/io/OutputStreamWriter.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/io/OutputStream.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-IN ym(META-INF / sym / rt.jar / java / io / InputStream.class)]] [加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / io / Reader.class)]] [加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / lang / Integer.class)]] [正在加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / lang / Number.class)]] [正在加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / io / FileOutputStream.class)]] [正在加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / io / BufferedWriter.class)]] [加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / io / OutputStreamWriter.class)]] [正在加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / io / OutputStream.class)]] [加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-IN F/sym/rt.jar/java/io/Writer.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/lang/Error.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/lang/RuntimeException.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/lang/NumberFormatException.class)]] [loading ZipFileIndexFileObject[C:\\Program Files\\Java\\jdk1.7.0\\lib\\ct.sym(META-INF/sym/rt.jar/java/lang/IllegalArgumentException.class)]] [wrote RegularFileObject[E:\\DA_Laptrinhmang\\NguyenTo.class]] [total 441ms] BUILD SUCCESSFUL (total time: 2 seconds) F / sym / rt.jar / java / io / Writer.class)]] [加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / lang / Error.class)]] [加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / lang / RuntimeException.class) ]] [正在加载ZipFileIndexFileObject [C:\\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / lang / NumberFormatException.class)]] [正在加载ZipFileIndexFileObject [C: \\ Program Files \\ Java \\ jdk1.7.0 \\ lib \\ ct.sym(META-INF / sym / rt.jar / java / lang / IllegalArgumentException.class)]] [编写了RegularFileObject [E:\\ DA_Laptrinhmang \\ NguyenTo.class]] [总441毫秒]成功建立(总时间:2秒)

this works for me 这对我有用

package mypackage;

import java.io.IOException;

public class RunSomeJava {

    public static void main(String[] args) throws IOException {
        Process pro = Runtime.getRuntime().exec("java -cp E:\\workspaceIndigo2\\StackOverflow\\bin mypackage.SomeOtherProgram");
    }

}

and

package mypackage;

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

public class SomeOtherProgram {

    public static void main(String[] args) throws IOException {
        File f = new File(System.currentTimeMillis()+".txt");
        f.createNewFile();
    }

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM