昨日、感謝された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!");
}
}
}