我试图将String作为参数从一个Java Aplications传递给Second作为StartUp参数例如,我的Aplication必须在之前调用另一个Java Aplication(仅包含JOptionPane,JDialog或简单的JFrame)来启动,在System.exit(0);那里我尝试将一些描述从关闭应用程序发送到另一个应用程序,这些代码是我尝试的模拟,并且以这种形式,代码可以正常工作,并将String显示到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.*;
2 回答

Smart猫小萌
TA贡献1911条经验 获得超7个赞
jverd在OTN上接受的答案
是的,还有其他方法。这样不能满足您的需求吗?
还有一个带有数组的exec()签名,其中第一个元素是命令,其余元素是其args。它可能是也可能不是varargs调用。看起来像这样,尽管可能无法完全按照我的意愿工作。
exec(“ cmd”,“ / c”,“开始”,“ java”,“ -jar”,“ C:\ Dialog.jar”,“传递的信息”);
// 要么
exec(new String[] {"cmd", "/c", "start", "java", "-jar", "C:\\Dialog.jar", "Passed info"});
您可以将信息放入第二个进程读取的文件中。
您可以将信息存储在第二个进程查询的数据库中。
您可以让一个进程打开ServerSocket,然后另一个进程连接到该服务器套接字并以这种方式发送数据。
您可以使用更高级别的消息传递工具,例如JMS,Active MQ等。
您可以使用RMI。
您可以使用CORBA。
我敢肯定还有其他方法。
我不知道哪种方法最适合您的需求。这是您需要弄清楚的,尽管如果您不能决定,如果您在此处发布有关需求的更多详细信息,则可能有人会提供一些建议。
添加回答
举报
0/150
提交
取消