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

我试图将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.*;


梵蒂冈之花
浏览 535回答 2
2回答

Smart猫小萌

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

米琪卡哇伊

杜德请阅读何时运行时执行程序不会执行,如果您仍然遇到问题,请与我们联系。这是一篇好文章。我猜你有“您的参数有问题” ;-)干杯。基思
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java