Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在.bat上拖放多个文件?_Java_Windows_Batch File_Cmd - Fatal编程技术网

Java 如何在.bat上拖放多个文件?

Java 如何在.bat上拖放多个文件?,java,windows,batch-file,cmd,Java,Windows,Batch File,Cmd,基本上,我是一个不速之客,现在我遇到了一个问题,即使在阅读了关于这个主题的所有其他相关帖子后,我也无法解决:( 我试图用两个参数启动一个.jar文件(我们称之为test.jar)。我的批处理文件位于同一目录中。 下面是我不明白的部分: 这两个参数应该是我之前拖放到.bat文件中的文件名。 它应该是这样工作的: 我将第一个文件拖放到.bat文件上,然后将第二个文件拖放到.bat文件上。现在,.jar启动并显示两个文件名。 (如果dos窗口无法通过此按钮显示,则最好如此。) (到目前为止,我只是用一

基本上,我是一个不速之客,现在我遇到了一个问题,即使在阅读了关于这个主题的所有其他相关帖子后,我也无法解决:( 我试图用两个参数启动一个.jar文件(我们称之为test.jar)。我的批处理文件位于同一目录中。 下面是我不明白的部分: 这两个参数应该是我之前拖放到.bat文件中的文件名。 它应该是这样工作的: 我将第一个文件拖放到.bat文件上,然后将第二个文件拖放到.bat文件上。现在,.jar启动并显示两个文件名。 (如果dos窗口无法通过此按钮显示,则最好如此。) (到目前为止,我只是用一个文件获得它,但当我将另一个文件放到.bat上时,它只需启动另一个.bat窗口。) 这是my.jar文件的主要方法:

public static void main(String[] args) {
    JFrame frame = new JFrame();  //build JFrame
    frame.setSize(400,400);

    JTextField t = new JTextField(); //build TextField to display the args
    t.setBounds(10, 10, 300, 100);

    if(args.length>=1){                 //if there is at least one argument, then print out the name of the file
        t.setText("First File: "+args[0]);          
        if(args.length>=2)              //if there is more then one argument, then print out the name of the files
            t.setText(t.getText()+" Second File: "+args[1]);    
        else                            //if there are not more then one argument
            t.setText(t.getText()+" 2nd Not found");        
    }else{                              //if there ist no argument
        t.setText("1st not found");
    }

    frame.add(t);       //add TextField
    frame.setVisible(true);     //set Visible
}

这是一个快速而干净的解决方案,试试看,如果我理解正确,这就是您所需要的:

@echo off
set file1=
set file2=


echo Drag and drop file one + Enter:
set /p file1=
echo.

echo Drag and drop file two + Enter:
set /p file2=
echo.

echo.&echo.
echo %file1% 
echo %file2%
echo.

java -jar FILE.jar %file1% %file2%    

pause
守则解释:

-确保在启动前清空两个变量file1和file2

-提示拖放文件,然后按enter键时,它会将拖动文件的路径存储到%file1%

-提示拖放文件,然后按enter键时,它会将拖动文件的路径存储到%file2%

-回显两个变量%file1%和%file2%,以确保它们已正确保存(可选,当您知道它起作用时,可以删除该部分)


-使用先前保存的两个参数(路径)运行.JAR文件

我只是觉得用户最好一个接一个地拖动文件,但如果像你说的那样不可能,我想我会接受你同时删除这两个文件的暗示。这实际上是我在开始考虑一个接一个文件之前的解决方案。-我想我学到了一些东西XD谢谢你,不用客气,我只是更新了我的解决方案的答案如果你需要一个接一个地拖放文件,它可能会在某个时候派上用场!很高兴我能帮上忙也许你可以回答我另一个问题:在执行我的.jar文件时,如何使dos窗口不可见。(因为程序实际上比我上面显示的代码大得多。)最小化运行是否足够(屏幕上看不到,但任务栏上显示图标)?或者您希望它完全不可见?如果它完全不可见会更好。如果在执行.bat代码时最小化窗口,然后窗口完全关闭,java代码可以继续运行,就可以了。