【问题标题】:Runnable jar, pass in argument to file in the jar可运行的jar,将参数传递给jar中的文件
【发布时间】:2016-01-06 11:44:02
【问题描述】:

我有一个可运行的 jar,里面我打包了以下内容:

myfolder1-
        -myfile1
        -myfile2

在我的 jar 中,我正在运行以下代码:

String filename = args[0];
...
Scanner sc = new Scanner(new File(filename));

如何在命令行中引用这些文件?如果我炸开罐子,我会在那里看到它们(myfolder1 与我解压缩的位置在同一目录中)

我试过了

java -jar myjar.jar classpath:myfolder1/myfile1
java -jar myjar.jar myfolder1/myfile1

无济于事

【问题讨论】:

    标签: java file jar


    【解决方案1】:

    java -jar myjar.jar ./myfolder1/myfile1

    所以尝试在文件夹之前添加“./”或完整路径并告诉我它是否有效。

    【讨论】:

    • 路径或名称中是否有空格?
    • BTW,Scanner 对象可以直接取文件路径,不需要“new File”,去掉试试。
    • 您是否包含了文件的扩展名,例如可能隐藏的“.txt”?
    【解决方案2】:

    我使用以下方法让它工作:

        ClassLoader classLoader = getClass().getClassLoader();
        InputStream is = classLoader.getResourceAsStream(filepath);
    

    文件路径为 args[0]

    谢谢大家!

    【讨论】:

      猜你喜欢
      • 2011-12-28
      • 2019-09-12
      • 2010-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      相关资源
      最近更新 更多