当前位置: 首页 > 知识库问答 >
问题:

如何运行java类use runtime。exec()?

湛同
2023-03-14

我必须通过另一个程序java use runtime运行java类。exec()。文件夹中的一个类与我的程序不同,因此我无法运行它。我使用了(java-cp“directory”类),但my类有导入文件,所以找不到filenotfound?谁能帮我?

Process pro=Runtime.getRuntime(). exec("java-cp\"E:\DA_Laptrinhmang\"NguyenTo");

以下是程序:

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();
    }
}

以下是错误:[解析已启动RegularFileObject[E:\DA\u Laptrinhmang\NguyenTo.java][解析已完成42ms][源文件的搜索路径:C:\Users\QUANG HUY\Documents\NetBeansProject\ChamDiemJava\build\classes,C:\Users\QUANG HUY\Documents\NetBeansProject\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\jsse.jar,C:\Program files\Java\jdk1.7.0\jre\lib\jce.jar,C:\Program files\Java\jdk1.7.0\jre\jre.jar 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\U提供程序。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:\Program 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/AutoCloseable.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\jdk1.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/InputStream reader.class)]][加载ZipFileIndexFileObject[C:\Program Files\Java\jdk1.7.0\lib\ct.sym(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/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-INF/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/NumberFormation.class)]][加载ZipFileIndexFileObject[C:\Program Files\Java\jdk1.7.0\lib\ct.sym(META-INF/sym/rt.jar/Java/lang/IllegalArgumentException.class)][Writed RegularFileObject[E:\DA\u Laptrinhmang\NguyenTo.class][total 441ms]构建成功(总时间:2秒)

共有1个答案

戎泰
2023-03-14

这对我很管用

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");
    }

}

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();
    }

}
 类似资料:
  • 问题内容: 我有两个如下的Java类 没有包装: 在包装中: 我可以同时编译它们: 但是,我只能运行第一个: 我该如何跑步? 问题答案: 如果将 源 放在与包名称()相匹配的适当目录层次结构中,并从层次结构的根目录()进行编译/运行,则不会出现此问题: 您还可以使用选项进行编译,以便将类移动到这样的目录层次结构中: 请注意,您不应使用以开头的程序包名称,JDK的更高版本将引发SecurityExc

  • 我的两门课是这样的: 和 我无法使用编译这两个文件,错误是: a、 java:4:找不到symbol symbol:B类位置:p.a类 B类B=新B(“哈哈”) ^ a.java:4:找不到符号 符号:B类 位置:p.a类 B类=新B(“哈哈”) ^ 2个错误 移除

  • 问题内容: 因此,我可以很好地做到这一点: 如果存在。我也可以高兴地做到这一点: 如果类文件存在于jar的适当部分中。简单的东西。但是我无法为自己的生活做这样的事情: 存在的地方和存在的地方(当然不包含MyClass)。 我会感到愚蠢吗? 问题答案: 可能:) 基本上,这只是在类路径和jar文件中包括(当前目录)。

  • 问题内容: 我在文件MyClass.java文件中有一个名为MyClass的类(下面提到的代码) 我在上课 但是我正在尝试使用 要么 我遇到错误 但是,如果我省略了软件包名称,则可以运行该程序。我要去哪里错了? 问题答案: 确保您位于包文件夹(已编译的类文件所在的文件夹)的父目录中,并执行以下命令: 下面是一个示例文件结构: 在上面的示例结构中,您将必须从“ bin”目录中执行命令。 另外,将类定

  • 我想运行我的gui,但是我不知道如何初始化这个类。我正在从python过渡到Java,所以我对这个还是相当陌生。代码有效,我只需要知道如何运行它。 如何在静态void main(String[] args)下运行init()方法?

  • 问题内容: 我正在尝试编写一个BASH脚本来使我的Java程序运行(常见问题,对吗?)。我只是不能完全正常工作。经过多次编辑后,这是我尝试设置类路径然后执行程序的方法: 对不起,我只是想立即做所有事情。它告诉我找不到程序的主类!(( 有任何想法吗? 问题答案: Java类路径使用分号作为令牌分隔符。 使用反引号代替单引号 尝试: