Java-如何通过快捷方式传递参数

Java-如何通过快捷方式传递参数,java,windows,arguments,shortcut,Java,Windows,Arguments,Shortcut,我有一个java程序,它从一个普通的公共静态void main(String[]args)开始 我希望能够创建此程序的快捷方式(只需右键单击文件夹中的可执行文件,按create Shortcut),然后能够传递一个参数,该参数将以字符串[]args结尾 这个参数到底是什么并不重要,因为我想要它的唯一目的是,我可以为同一个程序创建两个快捷方式,一个放在Window的Auto start文件夹中,另一个放在桌面上。前者将在每次我启动计算机时在后台运行,而另一个将实际打开一个窗口,以便我可以管理程序设

我有一个java程序,它从一个普通的公共静态void main(String[]args)开始

我希望能够创建此程序的快捷方式(只需右键单击文件夹中的可执行文件,按create Shortcut),然后能够传递一个参数,该参数将以字符串[]args结尾

这个参数到底是什么并不重要,因为我想要它的唯一目的是,我可以为同一个程序创建两个快捷方式,一个放在Window的Auto start文件夹中,另一个放在桌面上。前者将在每次我启动计算机时在后台运行,而另一个将实际打开一个窗口,以便我可以管理程序设置

本质上;我只想有两个Windows快捷方式,其中一个使用args[0].equals(“X”),另一个使用args[0].equals(“Y”)。如何实现这一点?

如果您要在Windows上发布程序,这可能是一个很好的工具。 或者,如果您愿意自己处理,您可以使用两个独立的
.bat
文件,并将它们与主
.jar
文件放在同一文件夹中。然后,快捷方式应该指向每一个<代码> .BAT/COD>文件,但是您应该考虑的是将路径变量设置为包含JRE。或者使用
java.exe
的完整路径

比如说,, 假设您的程序名为
MyApp.jar
位于
C:/Users/user1/MyApp/
使用同一文件夹中的
foo.bat
,它应该是这样的:

java -jar MyApp.jar X
bar.bat
也位于同一文件夹中:

java -jar MyApp.jar Y
如果路径变量中包含JRE,则必须替换
java
命令,该命令具有指向
java.exe
的完整路径,因此它类似于:

"C:\\Program Files\\Java\\jre1.8.0_212\\java.exe" -jar MyApp.jar YOUR_ARGUMENT
请注意,此处需要双引号,因为路径包含空格,当然,JRE路径根据Windows的版本和体系结构而有所不同,有时它位于
program Files(x86)


此外,您需要找到一种方法来隐藏启动
.bat
文件后弹出的控制台窗口,控制台窗口将一直可见,直到java程序终止,如果用户关闭它们,则会终止程序。可能会有帮助。

您想手动或通过代码创建此快捷方式吗?您可以编写一个bash脚本并创建一个执行它的快捷方式,不过您可能需要两个单独的脚本。@Nexevis bash在Windows上很难;-)这很有趣,但是如果除了.jar文件之外我还必须有两个不同的文件(在本例中是.bat文件),那么我最好只编译2个.jar文件,并为程序的每个“状态”使用一个。