首页 > 解决方案 > 从 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中本地运行它,但也没有错误飞出...

可能是什么问题呢?

标签: javalinux

解决方案


推荐阅读