拖放;将文件夹放入要在java应用程序中读取的批处理中

拖放;将文件夹放入要在java应用程序中读取的批处理中,java,batch-file,Java,Batch File,我对Java有点陌生,在批处理方面更是如此,我正在开发一个小程序,可以自动检查文件夹中的一堆特定文件,但是在这一点上,我需要使用Java扫描器来读取要检查的文件夹的路径,我想知道将文件夹拖放到批处理中执行此应用程序需要什么 这是我的扫描仪应用程序的开始 publicstaticvoidmain(字符串[]args){ 打印(“定位器文件夹:”); 扫描仪sc=新的扫描仪(System.in); 字符串路径=sc.next(); sc.close(); File[]folders=新文件(路径).

我对Java有点陌生,在批处理方面更是如此,我正在开发一个小程序,可以自动检查文件夹中的一堆特定文件,但是在这一点上,我需要使用Java扫描器来读取要检查的文件夹的路径,我想知道将文件夹拖放到批处理中执行此应用程序需要什么

这是我的扫描仪应用程序的开始

publicstaticvoidmain(字符串[]args){
打印(“定位器文件夹:”);
扫描仪sc=新的扫描仪(System.in);
字符串路径=sc.next();
sc.close();
File[]folders=新文件(路径).listFiles();
这是一批,即使它不会带来太多的信息

@ECHO off

"C:\Program Files\Java\jdk-13.0.2\bin\java.exe" -jar "E:\Hugo\Documents\_Quadrica\afc.jar"

您不需要
扫描仪
来获取路径。
将文件(或文件夹)拖到批处理文件上时,它将成为批处理文件的命令行参数,因此您只需将
%1
添加到批处理文件中java命令的末尾,即

"C:\Program Files\Java\jdk-13.0.2\bin\java.exe" -jar "E:\Hugo\Documents\_Quadrica\afc.jar" "%1"
注意:如果路径包含空格,则有必要将
%1
括在双引号中。还请注意,如果路径包含异常字符(例如
&
),则此操作将不起作用。请参阅

然后在java代码中,路径实际上位于方法
main()
args
参数中,因此java代码应该是

publicstaticvoidmain(字符串[]args){
如果(args.length>0){
System.out.println(“定位器文件夹:“+args[0]);
}
}

您能详细说明一下“将文件夹拖放到我的批处理中”吗?您的意思是要在桌面GUI中将文件夹拖放到.jar文件中以便运行吗?是的,在windows资源管理器中,我想拖动一个文件夹,将其拖放到运行我的jar文件的批处理文件中(也在windows资源管理器中)。您应该使用
“%~1”
而不是
“%1”
,因为包含空格的路径已经带引号到达,并且
~
首先会删除它们,所以您可以避免引用已经带引号的路径…@aschipfl,或者干脆删除双引号,因为它们是不必要的?不,因为它们保护空格和一些特殊字符…