java - 从 JAVA 8 迁移到 JAVA 11 后,服务无法启动
问题描述
有一个用 Java 编写的服务,之前在 8 下编译过。我将版本提高到 11,一切都重新编译没有问题,我通过测试运行它,没有任何问题。
我将所有这些部署在一台装有 Linux 的 PC 上,但服务没有启动并处于以下状态:
激活:激活(开始)
服务文件有以下描述:
[单位] 描述=Blah Blah Blah After=syslog.target
[服务] SyslogIdentifier=%p 工作目录=/usr/local/%p
ExecStart=/bin/bash -c "/usr/lib/jvm/jre-11/bin/java -server -XX:+HeapDumpOnOutOfMemoryError -Xmx256m -Dconfig.file=/usr/local/%p/app.conf -jar app/$(ls app|head -1)" User=root Restart=on-failure Type=notify NotifyAccess=main SuccessExitStatus=143
[安装] WantedBy=multi-user.target
我在服务日志中看不到任何错误。
如果你打开 log: sudo journalctl -xe
,那么就有这样的提及:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/usr/local/blablaservice/a
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
好吧,理论上,它不应该对我造成任何破坏......
我尝试在Windows下的IDEA中本地运行它,但也没有错误飞出...
可能是什么问题呢?
解决方案
推荐阅读
- javascript - 有没有办法用 puppeteer 截取屏幕截图并自动显示在 html 页面上,而不是保存到我的电脑上?
- linux - 使用 Bash 从简单的 linux 脚本编辑变量
- go - 在节奏工作流的循环内调用相同的活动
- pytorch - Pytorch:将张量移动到 GPU 时,内存会发生什么变化?
- vba - Word VBA:扫描文档中的字符串,将其复制到列表中,然后移至下一个匹配项
- python - 如何在 Django 中转换字符串中的列表值?
- c++ - 对和花括号检查
- javascript - 尝试使用 Javascript 在 html 上制作时钟,但我的脚本无法正常工作。时钟实际上并没有运行
- excel - MS Access 2016 中 Excel 工作簿的无链接路径
- confluence - Comala/Confluence - 首次应用 Worfklow 时触发