【问题标题】:how to execute cmd command using another program in java如何在java中使用另一个程序执行cmd命令
【发布时间】:2014-08-01 13:48:50
【问题描述】:

我想制作一个打开另一个java程序的程序。如何在编译和运行java程序时运行/执行cmd命令。

例如 c:\Users\Burnok> javac HelloWorld.java 和 c:\Users\Burnok> java HelloWorld

如何在 java 程序中做到这一点?请帮忙。

我尝试了这段代码,但它编译成功,但如果我尝试运行 HelloWorld.class,它会说找不到或加载主类。

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;


public class Test {

     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);
        printLines(command + " stdout:", pro.getInputStream());
        printLines(command + " stderr:", pro.getErrorStream());
        pro.waitFor();
      }

      public static void main(String[] args) {
        try {
            runProcess("javac src/HelloWorld.java");
            runProcess("java src/HelloWorld");
        } catch (Exception e) {
          e.printStackTrace();
        }
      }

}

这是错误 java src/HelloWorld stderr:错误:找不到或加载主类 src.HelloWorld

【问题讨论】:

标签: java


【解决方案1】:

您应该在从另一个目录运行时提及类路径

语法是java -classpath directory_to_program Program

try {
        runProcess("javac src/HelloWorld.java");
        runProcess("java -classpath src HelloWorld");
    } catch (Exception e) {
      e.printStackTrace();
    }

阅读更多信息How do I run a java program from a different directory?

【讨论】:

  • 感谢它显示 hello world 但我想像打开另一个 cmd 的测试类一样运行
  • @user3276091 抱歉,您能解释一下“打开另一个 cmd”吗?
  • @user3276091 sujithvm 只是修复了这个bug,没有引入新的运行方式,那有什么问题呢?
  • 是的,但很抱歉,我想打开另一个显示 helloWorld 的 cmd
  • @user3276091 你有另一个window 有命令行要打开吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多