使用Windows在文件上启动Java程序;以“打开”;选项

使用Windows在文件上启动Java程序;以“打开”;选项,java,file,Java,File,我想制作一个Java程序,可以使用Windows的“Open With…”菜单选项在文件上执行,以读取文件并处理它们。如何实现这一点?使用包含绝对文件路径的字符串作为第一个参数,有效地执行程序。也就是说,如果我右键单击C:\Docs中的“text.txt”,并选择使用记事本打开它,则与在windows命令提示符中键入以下内容完全相同: notepad.exe "C:\Docs\text.txt" 不幸的是,由于java程序是通过java执行的,而java本身需要额外的参数,并且在使用Open

我想制作一个Java程序,可以使用Windows的“Open With…”菜单选项在文件上执行,以读取文件并处理它们。如何实现这一点?

使用包含绝对文件路径的字符串作为第一个参数,有效地执行程序。也就是说,如果我右键单击C:\Docs中的“text.txt”,并选择使用记事本打开它,则与在windows命令提示符中键入以下内容完全相同:

notepad.exe "C:\Docs\text.txt"
不幸的是,由于java程序是通过java执行的,而java本身需要额外的参数,并且在使用Open With选项时无法控制这些参数,因此无法使用java程序直接打开文件

您最好的办法是使用包装器脚本或程序为您打开带有文件的jar。我使用以下一行Windows批处理脚本作为示例:

FancyTextProcessorLauncher.bat:

java -jar "user3838812sFancyTextProcessor.jar" %1
将此脚本放在与user38812sfankytextprocessor.jar(在本例中表示打包的程序)相同的目录中


使用“打开方式”,选择FancyTextProcessorLauncher.bat作为打开文本文件的程序。此脚本使用适当的参数启动Java以运行包含您的程序的jar,并将%1(在批处理脚本语言中,是通过命令行传递的第一个参数)作为第一个参数提供给您的程序。然后,您可以从传入的路径(可以通过主方法作为args[0]访问)创建一个文件对象(或任何适合您打算执行的操作的对象).

您使用的是什么操作系统?我强烈建议您查看并重新表述您的问题(如果可能),这样您的问题就不会被否决,您也可以获得问题的解决方案。我使用的是windows 8.1-这可以在windows 8中通过命令行完成(使用windows附带的reg二进制文件)。您可以在需要的地方添加java-jar参数?