Puede llamar directamente al método principal de cualquier clase. Por ejemplo, si tiene clases de Servidor y Cliente y quiere ejecutar un servidor y dos clientes, esto es lo que puede hacer.
public class Server {
public void main(final String ... $Args) {
final Server S = new Server();
S.config($Args);
S.run();
}
}
public class Client {
public void main(final String ... $Args) {
final Client C = new Client();
C.config($Args);
C.run();
}
}
public class Test_ServerClient {
public void main(final String ... $Args) {
Server.main('server1.cfg');
Client.main('client1.cfg');
Client.main('client2.cfg');
}
}
¡Hecho!
Bueno, casi. Es posible que desee demorar un poco antes de llamar al principal del cliente solo para asegurarse de que el servidor esté funcionando correctamente.
Uno piensa sin embargo. Todos los servidores y clientes se ejecutarán en la misma JVM. En la mayoría de los casos (que solo quiera probar su interacción y no tenga nada que ver con la carga de clases, ya que se comportará de manera diferente cuando están/no están en la misma JVM), esto debería estar bien. Si realmente desea hacer que se ejecute en JVM diferente, puede usar Ant para ejecutarlos en su lugar.
Algo como esto:
<project name="TestServerClient" default="test" basedir=".">
<target name="test">
<java classname="my.Server">
<arg value="server1.cfg"/>
<classpath>
<pathelement location="dist/test.jar"/>
<pathelement path="${java.class.path}"/>
</classpath>
</java>
<java classname="my.Client">
<arg value="client1.cfg"/>
<classpath>
<pathelement location="dist/test.jar"/>
<pathelement path="${java.class.path}"/>
</classpath>
</java>
<java classname="my.Client">
<arg value="client2.cfg"/>
<classpath>
<pathelement location="dist/test.jar"/>
<pathelement path="${java.class.path}"/>
</classpath>
</java>
</target>
</project>
Por lo que sólo se puede ejecutar esta hormiga y eso es todo.
Espero que esto ayude.
Consulte esta pregunta: http://stackoverflow.com/questions/316761/how-to-launch-multiple-java-programs-with-one-configuration-on-separate-consoles – JesperE
Para resumir todas las respuestas hasta el momento: Eclipse no puede hacerlo, necesitará otra herramienta o alguna solución hackish. – lvella
En realidad, hay un boleto abierto en el sitio de Eclipse que solicita esta misma funcionalidad. Uno de los colaboradores propuso un complemento que permite agrupar más configuraciones de lanzamiento e iniciarlas todas a la vez. Aunque su funcionalidad es limitada, hace un gran trabajo. El código fuente está incluido para que pueda hacer los cambios necesarios. Disponible aquí: https://bugs.eclipse.org/bugs/show_bug.cgi?id=39900#attach_177951 –