Ich versuche, einen String als Parameter von einer Java-Anwendung an eine zweite als StartUp-Parameter zu übergeben
Ich habe zum Beispiel Anwendungen, die eine andere Java-Anwendung (die nur JOptionPane, JDialog oder einen einfachen JFrame enthält) aufrufen müssen, bevor System.exit(0);
Dort versuche ich, einige Beschreibungen aus der abschließenden Anwendung an eine andere zu senden,
dieser Code ist Simulationen, was ich versucht, dass und in dieser Form, Code funktioniert richtig und angezeigt String in der JTextArea ...
import java.io.IOException;
import java.util.concurrent.*;
public class TestScheduler {
public static void main(String[] args) throws InterruptedException {
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(10);
executor.setContinueExistingPeriodicTasksAfterShutdownPolicy(true);
executor.setExecuteExistingDelayedTasksAfterShutdownPolicy(true);
for (int i = 0; i < 10; i++) {
final int j = i;
System.out.println("assign : " + i);
ScheduledFuture<?> future = executor.schedule(new Runnable() {
@Override
public void run() {
System.out.println("run : " + j);
}
}, 2, TimeUnit.SECONDS);
}
System.out.println("executor.shutdown() ....");
executor.shutdown();
executor.awaitTermination(10, TimeUnit.SECONDS);
try {
Process p = Runtime.getRuntime().exec("cmd /c start java -jar C:\\Dialog.jar 'Passed info'");
} catch (IOException ex) {
ex.printStackTrace();
}
System.out.println("System.exit(0) .....");
System.exit(0);
}
private TestScheduler() {
}
}
//
import java.awt.*;
import java.util.ArrayList;
import javax.swing.*;
public class Main {
private static ArrayList<String> list = new ArrayList<String>();
public Main() {
JFrame frm = new JFrame();
JTextArea text = new JTextArea();
if (list.size() > 0) {
for (int i = 0; i < list.size(); ++i) {
text.append(list.get(i));
}
}
JScrollPane scroll = new JScrollPane(text,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.add(scroll, BorderLayout.CENTER);
frm.setLocation(150, 100);
frm.setSize(new Dimension(400, 300));
frm.setVisible(true);
}
public static void main(String[] args) {
if (args.length > 0) {
for (String s : args) {
list.add(s);
System.out.print(s + " ");
}
}
Main m = new Main();
}
}
meine Frage:
EDIT1: Gibt es eine andere Möglichkeit, wie man einen Wert von einer Java-Anwendung (es muss System.exit(0);) an eine andere Java-Anwendung übergeben, eine andere Möglichkeit, wie ich versucht, indem Sie Process/ProcessBuilder
EDIT2: mein Querverweis http://forums.oracle.com/forums/thread.jspa?threadID=2229798&tstart=0
akzeptierte Antwort von OTN