在Java中通过getRuntime()运行程序时遇到问题

在Java中通过getRuntime()运行程序时遇到问题,java,runtime.exec,Java,Runtime.exec,我有以下课程: 编译完CreateTexts.java类后,我想通过getRuntime(通过Eclipse调用)运行它。所以我管理这个班 public class RuntimeDemo { public static void main(String[] args) { try { // create a new array of 2 strings String[] cmdArray = new String[2]; // first argument

我有以下课程:

编译完CreateTexts.java类后,我想通过getRuntime(通过Eclipse调用)运行它。所以我管理这个班

public class RuntimeDemo {

   public static void main(String[] args) {
   try {

   // create a new array of 2 strings
   String[] cmdArray = new String[2];

   // first argument is the program we want to open
   //C:\Program Files\Java\jdk1.6.0_20\bin
   cmdArray[0] = "C://Program Files//Java//jdk1.6.0_20//bin//java";

   // second argument is a txt file we want to open with notepad


  cmdArray[1] = "C://logback//CreateTexts";



   // create a process and execute cmdArray and currect environment
   Process process = Runtime.getRuntime().exec(cmdArray,null);


   } catch (Exception ex) {
   ex.printStackTrace();
   }

   }
}

但是我没有看到正在创建的输出文件。任何明显的提示谢谢你运行程序的方式是错误的

假设您
createText
在包
logback
中。并且文件位于
“C://logback//createText”
,那么您必须
cd
C:
,然后作为
java logback.createText
执行程序


从任何目录直接使用绝对路径调用文件都不起作用。

我认为我需要使用ProcessBuilder类,不是这样。为什么不在jt中简单地调用批处理文件呢?这段代码让批处理文件来运行
CreateTexts
代码?嗯,但是我怎么能从Eclipse编译它呢(在一些随机目录中。)?或者我猜这是java安全机制或smth?-我认为clarifies@Coffee,是..而不是将
cd
ing添加到目录..您还可以将其添加到类路径,如链接中的答案所述。。。