nICEnnnnnnnLee / BilibiliDown

(GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳
http://nICEnnnnnnnLee.github.io/blog/2019/03/02/java-spider-bilibili-down-index/
Apache License 2.0
2.63k stars 261 forks source link

MacOS下不能保存设置 #110

Closed iamPorter closed 2 years ago

iamPorter commented 2 years ago

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

相关信息

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

nICEnnnnnnnLee commented 2 years ago

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 commented 2 years ago
  • 你是怎么运行本程序的,或者说运行本程序的命令行是什么?

双击运行。

  • 控制台是否能看见输出?输出类似于:
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 commented 2 years ago

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

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

java -jar INeedBiliAV.jar

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

nICEnnnnnnnLee commented 2 years ago

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


在保存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
github-actions[bot] commented 2 years ago

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