将命令行参数传递给可运行的 JAR

2022-09-01 02:26:52

我从一个 Eclipse 项目构建了一个可运行的 JAR,该项目处理给定的 XML 文件并提取纯文本。但是,此版本要求在代码中对文件进行硬编码。

有没有办法做这样的事情

java -jar wiki2txt enwiki-20111007-pages-articles.xml

并让jar在xml文件上执行?

我已经做了一些环顾四周,所有给出的例子都与在命令行上编译JAR有关,没有一个涉及传入参数。


答案 1

为什么不呢?

只需修改你来接收参数并处理参数。Main-Class

public class wiki2txt {

    public static void main(String[] args) {

          String fileName = args[0];

          // Use FileInputStream, BufferedReader etc here.

    }
}

在命令行中指定完整路径。

java -jar wiki2txt /home/bla/enwiki-....xml

答案 2

您还可以在命令行上设置 Java 属性(即环境变量),并在代码中的任何位置轻松使用它。

命令行将按如下方式完成:

c:/> java -jar -Dmyvar=enwiki-20111007-pages-articles.xml wiki2txt

并且 java 代码访问该值,如下所示:

String context = System.getProperty("myvar"); 

请参阅有关 Java 中传递参数的问题。