java - 在控制台执行run命令时如何为java程序提供外部文件?

标签 java execution

所以这似乎是一个微不足道的问题,但我找不到任何可以回答我的问题的信息。尽管如此,这是一个非常普遍的编码问题。

假设您有一个 java 程序,它读取文件并根据文件提供的信息创建数据结构。所以你这样做:

javac javaprogram.java
java javaprogram

很简单,但我在这里想要做的是为程序提供在命令行中指定的文件,如下所示:

javac javaprogram.java
java javaprogram -file

我必须编写什么代码才能结束这个问题? 谢谢。

最佳答案

Java 最好的命令行实用程序库之一是 JCommander .

根据您的线程描述,一个简单的实现是:

public class javaprogram {

    @Parameter(names={"-file"})
    String filePath;

    public static void main(String[] args) {
        // instantiate your main class
        javaprogram program = new javaprogram();

        // intialize JCommander and parse input arguments
        JCommander.newBuilder().addObject(program).build().parse(args);
        
        // use your file path which is now accessible through the 'filePath' field
    }

}

在编译 javaprogram.java 类文件时,您应该确保库 jar 在您的类路径下可用。

否则,如果您不需要程序参数周围的实用程序,您可以保持程序条目足够简单,将文件路径读取为原始程序参数:

public class javaprogram {

    private static final String FILE_SWITCH = "-file";

    public static void main(String[] args) {
        if ((args.length == 2) && (FILE_SWITCH.equals(args[0]))) {
            final String filePath = args[1];
            // use your file path which is now accessible through the 'filePath' local variable
        }
    }

}

关于java - 在控制台执行run命令时如何为java程序提供外部文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52723400/

相关文章:

Java 矩阵和数值

java - 创建新 Maven 项目时 : "Retrieving archetypes:". Java 堆空间发生内部错误

java - 从命令行启动 jar 时如何使用 java 启动画面?

time - CakePHP 2.1 测量页面执行时间

mysql - 检查 mysql 中不同类型用户的单个用户表与两个用户表的性能

php - sleep 时间是否计入执行时间限制?

java - 将参数从操作类传递到 Liferay 中的 View 页面时出现问题

java - 如何在渲染 box2Dlights 时调整视口(viewport)?

c - 为什么执行时间会根据数据类型而变化?

ssis - DTExec : The package execution returned DTSER_FAILURE (1) in SSIS package execution