Java:从同一个JAR启动两个不同的应用程序?

时间:2011-04-10 16:56:13

标签: java jar executable-jar

是否有可能从同一个罐子中启动两个不同的应用程序?我编写了简单的客户端服务器,客户端和服务器部分都在一个JAR中。他们使用一些常见的类。

据我所知,我可以为客户端和服务器创建单独的jar,并将常用的类和资源放入第三个jar中。这实际上是做事的“正确”方式。但我的任务很简单,课程很小,我只是不想制作三个罐而不是一个。

java -jar需要清单中的Main-Class。似乎没有-jar开关也无法使它工作。

BTW,客户端和服务器应该能够并行运行。

2 个答案:

答案 0 :(得分:6)

您可以在jar中始终拥有两个主要类,然后根据您是要运行客户端还是服务器来使用它们,例如:

java -cp yourapp.jar com.your.app.ClientMain

java -cp yourapp.jar com.your.app.ServerMain

您甚至可以分发bash或bat文件,以便更轻松地运行不同的应用程序。

答案 1 :(得分:5)

是的,创建一个带有参数的主类,并使用该参数来确定是否启动客户端或服务器:

 public class MyMainClass
 {
      public static void Main(String[] args)
      {
           if (args.length != 0 && args[1].toLowerCase().equals("server"))
                /* launch the server */;
           else
           {
                /* launch the client */ 
           }

      }
 }

我就是这样做的。

相关问题