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

Java:从同一个JAR启动两个不同的应用程序?,java,jar,executable-jar,Java,Jar,Executable Jar,是否有可能从同一个jar启动两个不同的应用程序?我编写了简单的客户机-服务器,客户机和服务器部分都在一个JAR中。它们使用一些公共类 我知道,我可以为客户机和服务器创建单独的jar,并将常用的类和资源放入第三个jar中。这实际上是做事情的“正确”方式。但是我的任务很简单,类也很小,所以我不想做三个罐子而不是一个 java-jar需要清单中的主类。而且似乎没有-jar开关我也无法让它工作 顺便说一句,客户端和服务器当然应该能够并排运行。是的,创建一个接受参数的主类,并使用该参数确定是否启动客户端或

是否有可能从同一个jar启动两个不同的应用程序?我编写了简单的客户机-服务器,客户机和服务器部分都在一个JAR中。它们使用一些公共类

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

java-jar需要清单中的主类。而且似乎没有-jar开关我也无法让它工作


顺便说一句,客户端和服务器当然应该能够并排运行。

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

 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 */ 
           }

      }
 }

这就是我要做的。

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

 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 */ 
           }

      }
 }

这就是我要做的。

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

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


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

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

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


您甚至可以分发bash或bat文件,以使运行不同的应用程序更容易。

为什么没有-jar开关就无法使其工作?你试过用-cp替换-jar吗?@bkail-Yay!你的解决方案有效。请回答接受它。太简单了!:)为什么没有-jar开关就无法工作?你试过用-cp替换-jar吗?@bkail-Yay!你的解决方案有效。请回答接受它。太简单了!:)非常感谢,@bkail已经在评论中回答了正确的问题。非常感谢,@bkail已经在评论中回答了正确的问题。