获取ProcessBuilder = new ProcessBuilder();工作,请帮助

时间:2013-06-06 05:25:36

标签: java

所以昨天在StackOverflow的帮助下得到了一些赞赏,太糟糕了,我还不能赞成。好吧,我能够在Java程序中创建一个Java程序,这让我更接近计划中非常困难的部分。

所以现在正如标题所述,我有这个代码,我试图用另一个java程序来执行另一个java程序,但到目前为止,我尝试过的所有内容都失败了。我现在有多个文件没有错误只是没有任何反应,什么也没有打开。两者都使用Runtime.getRuntime()。exec();和ProcessBuilder = new ProcessBuilder();我还想知道我是否只能执行.jar文件,还是可以编译和执行.java文件?如果是这样的话? 所以,对于出现问题的任何帮助都将不胜感激。

谢谢。

编辑:更新了代码,我似乎正在接近它。目录似乎工作。只是我得到了回复的错误系统,它无法找到Java -Jar

我到目前为止的代码可在下面阅读:

 import java.io.File;

import javax.swing.JOptionPane;

   public class SelfWrite {
       public static void main(String args[]) {
           System.out.println("Working Directory = " +
                      System.getProperty("user.dir"));
         try {
             String newLine = new String(System.getProperty("line.separator"));  
             File f = new File("C:/Users/Powermaniac/workspace/Newfolder/");
             String fileDir = new String (f.getAbsolutePath());
             File j = new File("C:/Windows/System32/java" +  "-jar");
             String javaDir = new String(j.getAbsolutePath()); 
             File tempDir = new File (fileDir); 
             File tempjavaDir = new File (javaDir);
             if (tempDir.exists());
                JOptionPane.showMessageDialog(null, "File Exists");
             if (tempjavaDir.exists());
            JOptionPane.showMessageDialog(null, "Java Exists");
             if (tempDir.exists()) {  
                 String program = new String(fileDir + "UserInput.jar"); 
                 try {
                     ProcessBuilder pb = new ProcessBuilder("C:/Windows/System32/java", "-jar", program);
                     pb = pb.directory(new File(fileDir));  
                     File temp = pb.directory();  
                     String currentWorkingDirectory = "Current working directory: " + temp.toString();  
                     JOptionPane.showMessageDialog(null, currentWorkingDirectory);  
                     Process p = pb.start(); 
                     int UserInputExitCode = p.waitFor();  
                     if (UserInputExitCode == 0) {  
                         JOptionPane.showMessageDialog(null, "User Input Running Successfully!");  
                     }  
                     else {  
                         JOptionPane.showMessageDialog(null, "User Input Exit Code: " + UserInputExitCode +  
                        newLine + "Something went awry during UserInput.jar execution!");  
                     }  
                 }  
                 catch(Exception e) {  
                     JOptionPane.showMessageDialog(null, "User Input installation failed!" + newLine +  
                    "Couldn't find \"Java -Jar\" in the Standard Software directory.");  
                 }  
             }  
             else {  
                 JOptionPane.showMessageDialog(null, "Can't find the Java -Jar directory!" +   
                         newLine + "Program will now exit.");  
             }  
         }  
         catch (Exception e) {  
             JOptionPane.showMessageDialog(null, "Something has gone awry while running the processbuilder class!"); 

         }  
     } 
}

1 个答案:

答案 0 :(得分:0)

好的,在其他一些友善的人的帮助下,我问我发现了答案。虽然我有一种轻微的感觉,但我之前没有,但它没有用。我想我也知道为什么。所以基本上你可以打开或者看起来你似乎没有可运行的.jar如果没有GUI它似乎你不能,因为什么都没有出现所以没有任何迹象表明发生了什么。

无论如何,这里是其他任何需要它的人的代码,并找到这篇文章:

ProcessBuilder pb = new ProcessBuilder("java", "-jar", "C:/Users/Powermaniac/workspace/Newfolder/BasicGUI.jar");
pb.start();