Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MacOS下不能保存设置 #110

Closed
iamPorter opened this issue Aug 18, 2022 · 5 comments
Closed

MacOS下不能保存设置 #110

iamPorter opened this issue Aug 18, 2022 · 5 comments

Comments

@iamPorter
Copy link

image
无法保存设置,不管设置是否被更改。
该问题似乎普遍存在于最近几个release中。

相关信息

  • 当前系统(windows/linux等)MacOS Big Sur
  • java版本 1.8.0u341
  • 相关链接或者BV号 X
  • 账号是否登录 X
  • 在网页端观看是否存在问题 X
  • 是否存在自定义parsers X
  • 相关log 我也挺想抓取的,不过咋抓取?

另问:程序不保存账户登录信息跟这个有关系吗?

@nICEnnnnnnnLee
Copy link
Owner

  • 你是怎么运行本程序的,或者说运行本程序的命令行是什么?
  • 控制台是否能看见输出?输出类似于:
D:\Workspace\javaweb-springboot\BilibiliDown\release>java -Dfile.encoding=utf-8 -Dhttps.protocols=TLSv1.2 -jar INeedBiliAV.jar

Windows 10
Java version:11
D:\Workspace\javaweb-springboot\BilibiliDown\release
----Config init begin...----
  key-->value:  bilibili.name.date.favTime.pattern --> yyMMdd
  key-->value:  bilibili.name.date.cTime.pattern --> yyMMdd
  key-->value:  bilibili.name.format --> (:listName 0_listName\)UpName\avTitle-(:favTime favTime-)pAv2-clipTitle-qn
  key-->value:  bilibili.name.doAfterComplete --> true
  key-->value:  bilibili.download.thumbUp --> false
  key-->value:  bilibili.download.playSound --> true
  key-->value:  bilibili.download.maxFailRetry --> 3
  key-->value:  bilibili.format --> 2
  key-->value:  bilibili.cc.lang --> zh-CN
  key-->value:  bilibili.flv.ffmpeg --> false
  key-->value:  bilibili.menu.download.plan --> 1
  key-->value:  bilibili.menu.download.qn --> 1080P
  key-->value:  bilibili.tab.download.qn --> 1080P
  key-->value:  bilibili.pageSize --> 5
  key-->value:  bilibili.pageDisplay --> listAll
  key-->value:  bilibili.savePath --> download/
  key-->value:  bilibili.download.poolSize --> 3
  key-->value:  bilibili.download.period.between.download --> 0
  key-->value:  bilibili.download.period.between.query --> 0
  key-->value:  bilibili.download.multiThread.count --> 0
  key-->value:  bilibili.download.multiThread.minFileSize --> 0
  key-->value:  bilibili.download.multiThread.singlePattern --> github|ffmpeg|\.m4s|\.jpg|\.png|\.webp|\.xml
  key-->value:  bilibili.theme --> default
  key-->value:  bilibili.button.style --> design
  key-->value:  bilibili.restrictTempMode --> on
  key-->value:  bilibili.repo --> on
  key-->value:  bilibili.repo.save --> on
  key-->value:  bilibili.repo.definitionStrictMode --> off
  key-->value:  bilibili.alert.isAlertIfDownloded --> true
  key-->value:  bilibili.alert.maxAlertPrompt --> 5
  key-->value:  bilibili.https.allowInsecure --> false
  key-->value:  bilibili.lockCheck --> false
  key-->value:  bilibili.userAgent.pc --> Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0
  key-->value:  bilibili.user.login --> qr
  key-->value:  bilibili.server.port --> 8787
  key-->value:  bilibili.user.delete --> true
  key-->value:  bilibili.ffmpegPath --> ffmpeg
  key-->value:  bilibili.system.properties.jre11.override --> false
  key-->value:  bilibili.system.properties.jre11 --> -Dhttps.protocols=TLSv1.2 -Dsun.java2d.uiScale=1.0 -Dswing.boldMetal=false -Dsun.java2d.dpiaware=false
config/user.config 路径不存在, 尝试以程序目录为基址进行查找
----Config ini end...----
savePath: download/
config/user.config 路径不存在, 尝试以程序目录为基址进行查找
config/background.png 路径不存在, 尝试以程序目录为基址进行查找
allowInsecure:false
MJTitleBar-init/62 : -3
MJTitleBar-initTitle/84 : 不为null
登录线程被调用...
检查到存在本地Cookies...
process 执行完毕
ffmpeg version N-107626-g1368b5a725-20220731 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 12.1.0 (crosstool-NG 1.25.0.55_3defb7b)
  • config目录下是否存在文件app.config
  • config目录下是否存在文件app.config.new

@iamPorter
Copy link
Author

iamPorter commented Aug 18, 2022

  • 你是怎么运行本程序的,或者说运行本程序的命令行是什么?

双击运行。

  • 控制台是否能看见输出?输出类似于:
D:\Workspace\javaweb-springboot\BilibiliDown\release>java -Dfile.encoding=utf-8 -Dhttps.protocols=TLSv1.2 -jar INeedBiliAV.jar

Windows 10
Java version:11
D:\Workspace\javaweb-springboot\BilibiliDown\release
----Config init begin...----
  key-->value:  bilibili.name.date.favTime.pattern --> yyMMdd
  key-->value:  bilibili.name.date.cTime.pattern --> yyMMdd
  key-->value:  bilibili.name.format --> (:listName 0_listName\)UpName\avTitle-(:favTime favTime-)pAv2-clipTitle-qn
  key-->value:  bilibili.name.doAfterComplete --> true
  key-->value:  bilibili.download.thumbUp --> false
  key-->value:  bilibili.download.playSound --> true
  key-->value:  bilibili.download.maxFailRetry --> 3
  key-->value:  bilibili.format --> 2
  key-->value:  bilibili.cc.lang --> zh-CN
  key-->value:  bilibili.flv.ffmpeg --> false
  key-->value:  bilibili.menu.download.plan --> 1
  key-->value:  bilibili.menu.download.qn --> 1080P
  key-->value:  bilibili.tab.download.qn --> 1080P
  key-->value:  bilibili.pageSize --> 5
  key-->value:  bilibili.pageDisplay --> listAll
  key-->value:  bilibili.savePath --> download/
  key-->value:  bilibili.download.poolSize --> 3
  key-->value:  bilibili.download.period.between.download --> 0
  key-->value:  bilibili.download.period.between.query --> 0
  key-->value:  bilibili.download.multiThread.count --> 0
  key-->value:  bilibili.download.multiThread.minFileSize --> 0
  key-->value:  bilibili.download.multiThread.singlePattern --> github|ffmpeg|\.m4s|\.jpg|\.png|\.webp|\.xml
  key-->value:  bilibili.theme --> default
  key-->value:  bilibili.button.style --> design
  key-->value:  bilibili.restrictTempMode --> on
  key-->value:  bilibili.repo --> on
  key-->value:  bilibili.repo.save --> on
  key-->value:  bilibili.repo.definitionStrictMode --> off
  key-->value:  bilibili.alert.isAlertIfDownloded --> true
  key-->value:  bilibili.alert.maxAlertPrompt --> 5
  key-->value:  bilibili.https.allowInsecure --> false
  key-->value:  bilibili.lockCheck --> false
  key-->value:  bilibili.userAgent.pc --> Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0
  key-->value:  bilibili.user.login --> qr
  key-->value:  bilibili.server.port --> 8787
  key-->value:  bilibili.user.delete --> true
  key-->value:  bilibili.ffmpegPath --> ffmpeg
  key-->value:  bilibili.system.properties.jre11.override --> false
  key-->value:  bilibili.system.properties.jre11 --> -Dhttps.protocols=TLSv1.2 -Dsun.java2d.uiScale=1.0 -Dswing.boldMetal=false -Dsun.java2d.dpiaware=false
config/user.config 路径不存在, 尝试以程序目录为基址进行查找
----Config ini end...----
savePath: download/
config/user.config 路径不存在, 尝试以程序目录为基址进行查找
config/background.png 路径不存在, 尝试以程序目录为基址进行查找
allowInsecure:false
MJTitleBar-init/62 : -3
MJTitleBar-initTitle/84 : 不为null
登录线程被调用...
检查到存在本地Cookies...
process 执行完毕
ffmpeg version N-107626-g1368b5a725-20220731 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 12.1.0 (crosstool-NG 1.25.0.55_3defb7b)

这玩意我暂时不会看——Mac运行环境不能直接运行bat。我会想想办法。

  • config目录下是否存在文件app.config
  • config目录下是否存在文件app.config.new

稍后回复。

最后说一句:这是首次启动。

@iamPorter
Copy link
Author

iamPorter commented Aug 19, 2022

先补一句:有app.config,没有app.config.new。

再补一句:MacOS上在用终端用指令

java -jar INeedBiliAV.jar

似乎是可以在GUI的配置页正常保存配置的,但是直接双击启动是不能保存的。
还有就是下载文件的位置——可能跟启动账号环境有关系——,用终端启动文件会存档在用户目录,但是双击启动时程序会将文件储存在正常情况下找不到的“private”里面。
这样奇葩的程序启动规则是Java问题吗?是的话在#32里面补一下。

@nICEnnnnnnnLee
Copy link
Owner

  • 程序默认下载位置
    • ./download
  • 程序默认配置位置 (按优先级排序)
    • ./config/app.config
    • {jar/class所在位置}/config/app.config
    • jar包自带的app.config

由于默认采用的是相对位置,通过命令行调用的行为很好理解。


在保存config时,程序会寻找当前生效的配置的位置,并在其同级目录下生成`app.config.new`,没问题后替换为`app.config`。

没有保存成功 是因为 找不到生效的配置
一个可以复现该现象的例子是:单独将jar包复制到另一个位置,并在那个位置通过命令行运行它。
Mac下双击jar时的具体行为未知,可以肯定的是工作目录发生了改变。推测保存失败、下载保存位置奇葩的原理与例子类似。


一个替代的解决方案是: 不要双击jar运行程序,使用command脚本代替
具体地,在jar包所在目录创建文件Double-Click-to-Run-for-Mac.command,其内容为:

#!/bin/bash

# cd 到脚本所在目录
cd $(dirname $0)
java -Dfile.encoding=utf-8 -Dhttps.protocols=TLSv1.2 -jar INeedBiliAV.jar
# java -Dfile.encoding=utf-8 -Dhttps.protocols=TLSv1.2 -jar INeedBiliAV.jar >bili.log 2>&1 &
# java -Dfile.encoding=utf-8 -Dhttps.protocols=TLSv1.2 -jar INeedBiliAV.jar >/dev/null 2>&1 &

并赋予可执行权限。

sudo chmod +x Double-Click-to-Run-for-Mac.command

nICEnnnnnnnLee added a commit that referenced this issue Aug 20, 2022
#32 #70  #71 #110 Mac下请不要直接双击运行jar,请以命令行方式运行,确保jar包所在目录为工作目录
@github-actions
Copy link

由于长期没有状态更新,该问题自动关闭。如有需要可重新打开。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants