【问题标题】:How do I pass parameters to a jar file at the time of execution?如何在执行时将参数传递给 jar 文件?
【发布时间】:2010-10-02 04:20:51
【问题描述】:

如何在执行时将参数传递给 JAR 文件?

【问题讨论】:

    标签: jar


    【解决方案1】:

    如果参数中有空格,您可以如下所示传递。

    java -jar myjar.jar 'first argument' 'second argument'
    

    【讨论】:

      【解决方案2】:

      JAVA Documentation says:

      java [ 选项 ] -jar file.jar [ 论据...]

      ... 后面的非选项参数 传递类名或 JAR 文件名 到主函数...

      也许您必须将参数放在单引号中。

      【讨论】:

      【解决方案3】:
      java [ options ] -jar file.jar [ argument ... ]
      

      如果您需要传递 log4j 属性文件,请使用以下选项

      -Dlog4j.configurationFile=directory/file.xml
      
      
      java -Dlog4j.configurationFile=directory/file.xml -jar <JAR FILE> [arguments ...]
      

      【讨论】:

        【解决方案4】:

        向 jar 传递参数:

        java -jar myjar.jar one two
        

        您可以在“Main-Class”的 main() 方法中访问它们(在 JAR 的 manifest.mf 文件中提到)。

        String one = args[0];  
        String two = args[1];  
        

        【讨论】:

          【解决方案5】:

          你可以用这样的方式来做,所以如果没有指定参数,它仍然会继续:

          public static void main(String[] args) {
              try {
                  String one = args[0];
                  String two = args[1];
              }
              catch (ArrayIndexOutOfBoundsException e){
                  System.out.println("ArrayIndexOutOfBoundsException caught");
              }
              finally {
          
              }
          }
          

          然后启动应用程序:

          java -jar myapp.jar arg1 arg2
          

          【讨论】:

          • 你永远不应该使用异常来引导你的代码。相反,您应该在访问它之前检查数组的长度!
          • 好吧,如果程序必须总是有一个或多个参数,恕我直言,没有参数是使用异常的合法案例。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-01-06
          • 1970-01-01
          • 2018-04-07
          • 2016-09-15
          • 1970-01-01
          • 1970-01-01
          • 2016-10-03
          相关资源
          最近更新 更多