Pase String como parámetros de una aplicación Java a otra

Estoy tratando de pasar String como parámetro de una aplicación Java a la segunda como parámetro StartUp

por ejemplo, tengo aplicaciones que deben llamar a iniciar otra aplicación de Java (solo contiene JOptionPane, JDialog o JFrame simple) antes de System.exit(0); , allí trato de enviar algunas descripciones desde el cierre de la aplicación a otra,

este código es simulaciones de lo que probé y de esta forma, el código funciona correctamente y muestra String en el 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 list = new ArrayList(); public Main() { JFrame frm = new JFrame(); JTextArea text = new JTextArea(); if (list.size() > 0) { for (int i = 0; i  0) { for (String s : args) { list.add(s); System.out.print(s + " "); } } Main m = new Main(); } } 

mi pregunta :

EDIT1: si existe otra forma de cómo pasar algún valor de una Aplicación Java (debe llamarse System.exit (0);) a otra Aplicación Java, de otra manera como lo intenté usando Process / ProcessBuilder

EDIT2: mi crosspost http://forums.oracle.com/forums/thread.jspa?threadID=2229798&tstart=0

respuesta aceptada de OTN

respuesta aceptada por jverd en OTN

Sí, hay otras formas. ¿De esta manera no satisface tus necesidades?

  1. Hay otra firma exec () que toma una matriz, donde el primer elemento es el comando y el rest de los elementos son sus args. Puede o no ser una llamada varargs. Eso se vería así, aunque podría no funcionar exactamente como yo lo tengo.

    exec (“cmd”, “/ c”, “start”, “java”, “-jar”, “C: \ Dialog.jar”, “Información aprobada”);

// O

 exec(new String[] {"cmd", "/c", "start", "java", "-jar", "C:\\Dialog.jar", "Passed info"}); 
  1. Podría poner la información en un archivo que lea el segundo proceso.

  2. Puede almacenar la información en una base de datos que el segundo proceso consulta.

  3. Puede hacer que un proceso abra un ServerSocket y el otro se conecte y envíe los datos de esa manera.

  4. Puede usar una herramienta de mensajería de alto nivel como JMS, Active MQ, etc.

  5. Podría usar RMI.

  6. Puedes usar CORBA.

Estoy seguro de que hay otros enfoques también.

No tengo idea qué enfoque se adapta mejor a sus necesidades. Eso es algo que tendrá que averiguar, aunque si no puede decidir, si publica más detalles acerca de sus requisitos aquí, alguien puede ofrecerle algunos consejos.

Tipo,

Lea Cuando el ejecutor en tiempo de ejecución no lo hará y vuelva a contactarnos si todavía está atascado.

Es un buen artículo. Supongo que tienes “un problema con tu parámetro ” 😉

Aclamaciones. Keith.