将文件关联安装到 jar 可执行文件
Install a file association to a jar executable
使用我的 NSIS 脚本,我正在尝试安装这样的文件关联:
设置HKLM\Software\Classes\.my_ext\shell\open\command
默认值
与"C:\Program Files (x86)\my_app_path\my_app.jar" "%1"
或
与javaw.exe -jar "C:\Program Files (x86)\my_app_path\my_app.jar" "%1"
或
和"C:\Program Files\Java\jre\bin\javaw.exe" -jar "C:\Program Files (x86)\my_app_path\my_app.jar" "%1"
在第一种情况下,它根本不起作用。 (因为 jar 不是 windows 可执行文件?)
在第二种情况下,它根本不起作用。 (为什么?)
在第三种情况下,它可以工作,但是如果用户在不同的路径中安装新版本的 java,它就会中断(我的程序需要重新安装)。
有什么解决办法吗?
直接调用 javaw.exe 绝不会 100% 有效。
Harry Johnston 在评论中指出的真正解决方案是使用 Java 启动器,例如 launch4j. Since you are already using NSIS you might also have some luck by using that as a simple launcher。
使用我的 NSIS 脚本,我正在尝试安装这样的文件关联:
设置HKLM\Software\Classes\.my_ext\shell\open\command
默认值
与"C:\Program Files (x86)\my_app_path\my_app.jar" "%1"
或
与javaw.exe -jar "C:\Program Files (x86)\my_app_path\my_app.jar" "%1"
或
和"C:\Program Files\Java\jre\bin\javaw.exe" -jar "C:\Program Files (x86)\my_app_path\my_app.jar" "%1"
在第一种情况下,它根本不起作用。 (因为 jar 不是 windows 可执行文件?)
在第二种情况下,它根本不起作用。 (为什么?)
在第三种情况下,它可以工作,但是如果用户在不同的路径中安装新版本的 java,它就会中断(我的程序需要重新安装)。
有什么解决办法吗?
直接调用 javaw.exe 绝不会 100% 有效。
Harry Johnston 在评论中指出的真正解决方案是使用 Java 启动器,例如 launch4j. Since you are already using NSIS you might also have some luck by using that as a simple launcher。