如何在启动时将文件路径传递给我的 java 应用程序(如 .exe)?

How can pass my java application (as .exe) the path of a document on startup?

我使用 JSmooth 将我的 java 应用程序 (jar) 转换为可执行文件。这是一个简单的文本编辑器,就像记事本一样。我想使用 windows 的 "Open With" 函数来用 exe 打开某些文件。为此,我只需要每个文件的路径。我该怎么做?

我想过使用 java-属性 并用 System.getProperty("VariableName") 调用它,但我不知道这是否可行。 ${EXECUTABLEPATH} 只是让我找到 MyApp.exe.

的位置

短属性可以使用Preferences.userNodeForPackage(MyExample.class); 和方法:get、put、flush。
https://docs.oracle.com/javase/8/docs/technotes/guides/preferences/index.html

and/or 使用 exe 文件附近的属性文件作为保存路径 https://docs.oracle.com/javase/7/docs/api/java/util/Properties.html

对于使用 Windows 打开可以使用此架构,例如:

if (Desktop.isDesktopSupported()) {
    Desktop desktop = Desktop.getDesktop();
    if (desktop.isSupported(Desktop.Action.OPEN)) {
         desktop.open(file);
    }
}

https://docs.oracle.com/javase/7/docs/api/java/awt/Desktop.html

对于集合关联,请参阅: https://www.thewindowsclub.com/change-file-associations-windows 可能有用 Have the ability to set Java application as default file opener?