2302_80274807 2024-05-15 09:58 采纳率: 36.4%
浏览 149
已结题

在ubuntu配置PX4中进行make px4_sitl jmavsim出现WARNING: An illegal reflective access operation has occurred

在ubuntu配置PX4的过程中,进行了

cd PX4-Autopilot
make px4_fmu-v3_default

没有问题
当我运行

make px4_sitl jmavsim

出现了问题

[0/1] cd /home/lin/PX4-Autopilot/build...n/PX4-Autopilot/build/px4_sitl_default
SITL ARGS
sitl_bin: /home/lin/PX4-Autopilot/build/px4_sitl_default/bin/px4
debugger: none
program: jmavsim
model: none
world: none
src_path: /home/lin/PX4-Autopilot
build_path: /home/lin/PX4-Autopilot/build/px4_sitl_default
empty model, setting iris as default
SITL COMMAND: "/home/lin/PX4-Autopilot/build/px4_sitl_default/bin/px4" "/home/lin/PX4-Autopilot/build/px4_sitl_default"/etc -s etc/init.d-posix/rcS -t "/home/lin/PX4-Autopilot"/test_data
Creating symlink /home/lin/PX4-Autopilot/build/px4_sitl_default/etc -> /home/lin/PX4-Autopilot/build/px4_sitl_default/t

_____  __   __    ___ 
| ___ \ \ \ / /   /   |
| |_/ /  \ V /   / /| |
|  __/   /   \  / /_| |
| |     / /^\ \ \___  |
\_|     \/   \/     |_/

px4 starting.

INFO  [px4] Calling startup script: /bin/sh etc/init.d-posix/rcS 0
INFO  [init] found model autostart file as SYS_AUTOSTART=10016
INFO  [param] selected parameter default file eeprom/parameters_10016
INFO  [parameters] BSON document size 291 bytes, decoded 291 bytes (INT32:12, FLOAT:3)
[param] Loaded: eeprom/parameters_10016
INFO  [dataman] data manager file './dataman' size is 7866640 bytes
PX4 SIM HOST: localhost
INFO  [simulator] Waiting for simulator to accept connection on TCP port 4560
Buildfile: /home/lin/PX4-Autopilot/Tools/jMAVSim/build.xml

make_dirs:

compile:

create_run_jar:

copy_res:

BUILD SUCCESSFUL
Total time: 0 seconds
Options parsed, starting Sim.
Starting GUI...
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by javax.media.j3d.JoglPipeline (rsrc:j3dcore.jar) to method sun.awt.AppContext.getAppContext()
WARNING: Please consider reporting this to the maintainers of javax.media.j3d.JoglPipeline
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
INFO  [simulator] Simulator connected on TCP port 4560.
Init MAVLink
INFO  [commander] LED: open /dev/led0 failed (22)
INFO  [init] Mixer: etc/mixers/quad_w.main.mix on /dev/pwm_output0
INFO  [init] setting PWM_AUX_OUT none
INFO  [mavlink] mode: Normal, data rate: 4000000 B/s on udp port 18570 remote port 14550
INFO  [mavlink] mode: Onboard, data rate: 4000000 B/s on udp port 14580 remote port 14540
INFO  [mavlink] mode: Onboard, data rate: 4000 B/s on udp port 14280 remote port 14030
INFO  [mavlink] mode: Gimbal, data rate: 400000 B/s on udp port 13030 remote port 13280
INFO  [logger] logger started (mode=all)
INFO  [logger] Start file log (type: full)
INFO  [logger] [logger] ./log/2024-05-15/02_01_45.ulg    
INFO  [logger] Opened full log file: ./log/2024-05-15/02_01_45.ulg
INFO  [mavlink] MAVLink only on localhost (set param MAV_{i}_BROADCAST = 1 to enable network)
INFO  [mavlink] MAVLink only on localhost (set param MAV_{i}_BROADCAST = 1 to enable network)
INFO  [px4] Startup script returned successfully
pxh> INFO  [tone_alarm] home set
INFO  [tone_alarm] notify negative


其中的warning改如何解决

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-05-15 10:01
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    【您想要解决的问题】:您提问的目的是解决在Ubuntu配置PX4过程中,运行make px4_sitl jmavsim命令时出现的“WARNING: An illegal reflective access operation has occurred”警告信息。

    【问题出现原因】:这个警告信息通常与Java的反射机制有关。在Java 9及以后的版本中,为了提高安全性和模块化,引入了更强的封装性,限制了对某些内部API的非法反射访问。javax.media.j3d.JoglPipeline尝试通过反射访问sun.awt.AppContext.getAppContext()方法,这在新版本的Java中是不允许的。

    【问题解决方案】:要解决这个问题,您可以尝试以下几种方法:

    1. 更新jMAVSim:如果您使用的jMAVSim版本较旧,可能存在与新Java版本的兼容性问题。尝试更新到最新版本的jMAVSim。

    2. 使用兼容的Java版本:如果您的项目依赖于旧的Java版本,您可能需要使用与该项目兼容的Java版本。您可以使用JDK切换工具如jenvsdkman来管理您的Java版本。

    3. 修改jMAVSim代码:如果您有能力修改jMAVSim的源代码,可以尝试移除或替换掉非法的反射调用。

    4. 使用命令行参数:根据警告信息,您可以在启动jMAVSim时添加--illegal-access=warn参数来启用对更多非法反射操作的警告。这有助于识别和解决其他潜在的非法访问问题。

    【提供代码】:由于这个问题涉及到的是jMAVSim的内部实现,而不是您自己的代码,因此没有特定的代码可以提供来解决这个问题。您需要根据上述解决方案进行操作。

    【代码运行方式】:如果您选择更新jMAVSim或更改Java版本,您需要在Ubuntu环境中进行相应的安装或配置更改。

    【代码预期运行结果】:理想情况下,上述解决方案之一将帮助您消除警告信息,使jMAVSim能够在不产生非法反射警告的情况下运行。

    【推荐相关链接】:

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 1月14日
  • 创建了问题 5月15日