如何在读取字符串args[]中指定的文件的jar文件中运行java代码
所以我有一个java程序,它读取使用args指定的文件如何在读取字符串args[]中指定的文件的jar文件中运行java代码,java,gradle,jar,Java,Gradle,Jar,所以我有一个java程序,它读取使用args指定的文件 $ java Main somefile.txt 但是当我把它做成一个罐子时,我该怎么做呢?假设foo.jar包含 -META-INF -Main.class -someFile.txt 并与一起运行(不指定args after) java-jarfoo.jar 我该怎么做?请注意,我还使用gradle来组装罐子。有几种方法 您可以在jar文件中提供一个命令,告诉“java”命令要启动哪个类。这在Java教程中称为“”。然后 java
$ java Main somefile.txt
但是当我把它做成一个罐子时,我该怎么做呢?假设foo.jar包含
-META-INF
-Main.class
-someFile.txt
并与一起运行(不指定args after)
java-jarfoo.jar
我该怎么做?请注意,我还使用gradle来组装罐子。有几种方法
- 您可以在jar文件中提供一个命令,告诉“java”命令要启动哪个类。这在Java教程中称为“”。然后 java-jar foo.jar src/sourceset/resources/someFile.txt
- 您还可以从jar文件: java-cp foo.jar Main src/sourceset/resources/someFile.txt 从原始问题的注释和编辑来看,您似乎希望运行java命令而不在该行上放置任何参数,但也希望程序接收参数。没有办法直接做到这一点
public class MyAdapter {
public static void main(String[] args) {
OtherProgram.main(String[]{"somefile.txt});
}
}
然后调用它
不知何故,你必须在那里得到“somefile.txt”字符串。如果不能将其作为参数提供,则必须在jar文件中提供它。
java Main
的构建代码相同,方法是在代码中使用常量或获取文件夹中的每个文件,或指定参数在一个属性(文本)文件中,我没有说得足够清楚,我的问题是如果我想运行jar文件而不指定args。也就是说,someFile.txt也在foo.jar中。很抱歉搞混了。