为了账号安全,请及时绑定邮箱和手机立即绑定

将String作为参数从一个Java App传递到另一个Java App

将String作为参数从一个Java App传递到另一个Java App

梵蒂冈之花 2019-11-20 14:38:26
我试图将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。


我敢肯定还有其他方法。


我不知道哪种方法最适合您的需求。这是您需要弄清楚的,尽管如果您不能决定,如果您在此处发布有关需求的更多详细信息,则可能有人会提供一些建议。


查看完整回答
反对 回复 2019-11-20
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

杜德


请阅读何时运行时执行程序不会执行,如果您仍然遇到问题,请与我们联系。


这是一篇好文章。我猜你有“您的参数有问题” ;-)


干杯。基思

查看完整回答
反对 回复 2019-11-20
  • 2 回答
  • 0 关注
  • 526 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信