java - 解析从命令行作为参数传递给 Java 的文件

标签 java file args

我正在尝试点击此链接: Parsing arguments to a Java command line program

并使用java中的参数来解析一些文件。

我需要提供给应用程序的文件主要是 2 个。我们将它们称为 file1 和 file2。

我希望我可以这样调用java:

/usr/bin/java -jar myapplication.jar -f file1

/usr/bin/java -jar myapplication.jar -s file2

永远不会同时发生。

在我发布的链接中,我无法理解如何将参数(即文件)传递给 void main。

在了解我需要 -f -s 格式的参数之前我的代码:

public class myApp {
    public static void main(String[] args) throws IOException, JAXBException, SQLException {
        Database db = new Database();
        if ( args.length == 0 ) {
            System.out.println("No arguments were given.\n");
            db.disconnect();
        }
        else {
            System.out.println("Got the argument.\n");
            File file = new File(args[0]);
            String namefile = file.getName();

            switch (namefile.substring(0, 6)) {
                case "FILE01":
                    System.out.println("Processing file type FILE01: "+namefile);
                    Process_filezeroone program_zeroone = new Process_filezeroone();
                    program_zeroone.process(file, namefile);
                    break;
                case "FILE02":
                    System.out.println("Processing file type FILE02: "+namefile);
                    Process_filezerotwo program_zerotwo = new Process_filezerotwo();
                    program_zerotwo.process(file, namefile);
                    break;
                default:
                    System.out.println("Skipping: "+namefile);
                    db.disconnect();
            }
        }
    }
}

感谢您的帮助。

最佳答案

只需对第一个参数执行 switch case (-f/-s)。

File file;
switch(args[0]){
    case "-f" : 
        file = new File(args[1]);
        //do stuff with file1
        break;
    case "-s" : 
        file = new File(args[1]);
        //do stuff with file2
        break;
    default :
}

关于java - 解析从命令行作为参数传递给 Java 的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40086347/

相关文章:

java - Surefire 没有接受 Junit 5 测试

java - 为什么 createKeyFromXml() 不创建语言切换键?

python - 获取文件中的格式化列表来列出 python

C语言 : args in functions inside Main (). 不清楚它们是什么

ruby *args 语法错误

java - 如何有效地检查日期范围是否不重叠?

java - 从java中的友好url获取文件名和扩展名

ios - 尝试在 Xcode 工作区中创建新文件时,模板对话框不显示

java - 当用户在新行中按回车键时,他/她必须退出 while 循环。但它不起作用,它一直在换行

java - eclipse 中的 Args 语句