-1

昨日、感謝されたStackOverflowの助けを借りて、残念ながらまだ賛成できません。さて、Java プログラム内から Java プログラムを作成することができました。これは、計画の本当に難しい部分に到達できるようにするための 1 つのステップです。

タイトルにあるように、別の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!"); 

         }  
     } 
}
4

1 に答える 1

0

私が尋ねた他の友好的な人々の助けを借りて、私は答えを発見しました。少し前に持っていた気がしますが、うまくいきませんでした。そして、私もその理由を知っていると思います。したがって、基本的には開くことができます。GUI がない場合、実行可能な .jar を開くことができないようです。

とにかく、将来必要になり、この投稿を見つけた他の人のためのコードは次のとおりです。

ProcessBuilder pb = new ProcessBuilder("java", "-jar", "C:/Users/Powermaniac/workspace/Newfolder/BasicGUI.jar");
pb.start();
于 2013-06-07T13:20:40.037 に答える