一些已知问题或问题的解决方法。
保留BilibiliDown.cfg
配置
每次新版本msi安装包都会覆盖旧版本app/BilibiliDown.cfg
的内容,如果对它做了修改的话,新版本会回退到默认设置。
查看代码WinLauncher.cpp#L232-L250、
AppLauncher.cpp#L163-L175。
程序会检查从app/.package
读取包名称pkgName
,然后依次尝试从{LOCALAPPDATA}/{pkgName}
、{APPDATA}/{pkgName}
、./app
目录下查找BilibiliDown.cfg
。
所以,我们可以把配置放到{LOCALAPPDATA}/{pkgName}
或者{APPDATA}/{pkgName}
,对应的,也就是:
C:\Users\[你的用户名称]\AppData\Local\BilibiliDown
C:\Users\[你的用户名称]\AppData\Roaming\BilibiliDown
修改使用的JVM位置
对于使用脚本来说,这个问题不是问题。
但如果是exe来启动的话,默认JVM是在./runtime
文件夹,需要修改配置。
查看代码AppLauncher.cpp#L59-L77、
CfgFile.cpp#L267。
我们可以在配置文件BilibiliDown.cfg
中配置app.runtime
选项,举例:
[Application]
app.classpath=launch.jar
app.mainclass=nicelee.memory.App
app.runtime=D:\Program Files\BilibiliDown\runtime
[JavaOptions]
java-options=-Djpackage.app-version=1.6.32.0
java-options=-Dfile.encoding=utf-8
jpackage打包的msi程序安装/卸载不成功
安装时,会将设置好的下载文件目录
追加到config/app.config
目录下,如果config
目录不存在的话,那么就会报错。
如果是其它情况,可以参考Get a Log of Your Installation for Debugging,将msi程序的安装log记录下来,然后再具体分析。举例:
msiexec /i MyApplication.msi /l*v MyLogFile.txt
jpackage打包的exe程序无法自重启
JDK的已知问题,详见:
Restarted jpackage apps will be killed when the starting jpackage app exits.
System.exit(0) kills the launched 3rd party application