{"size": 19093, "ext": "js", "max_stars_repo_path": "master/assets/js/667.913a285b.js", "max_stars_repo_name": "Ecuashungo/docs.px4.io", "max_stars_repo_stars_event_min_datetime": null, "max_stars_repo_stars_event_max_datetime": null, "max_issues_repo_path": "master/assets/js/667.913a285b.js", "max_issues_repo_name": "Ecuashungo/docs.px4.io", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "master/assets/js/667.913a285b.js", "max_forks_repo_name": "Ecuashungo/docs.px4.io", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": null, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 19093.0, "max_line_length": 19093, "alphanum_fraction": 0.6495050542}
(window.webpackJsonp=window.webpackJsonp||[]).push([[667],{1337:function(a,t,s){a.exports=s.p+"assets/img/jmavsim.c9ff83b2.jpg"},2662:function(a,t,s){"use strict";s.r(t);var e=s(19),r=Object(e.a)({},(function(){var a=this,t=a.$createElement,e=a._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[e("h1",{attrs:{id:"jmavsim-sitl"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#jmavsim-sitl"}},[a._v("#")]),a._v(" jMAVSim SITL")]),a._v(" "),e("p",[a._v("jMAVSim은 시뮬레이션된 세계에서 PX4를 실행하는 "),e("em",[a._v("콥터")]),a._v(" 유형의 기체를 비행할 수 있는 간단한 멀티콥터 시뮬레이터입니다. 설정이 쉽고, 기체가 이륙, 비행, 착륙할 수 있으며, 다양한 장애 조건(예: GPS 장애)에 적절하게 반응을 테스트할 수 있습니다.")]),a._v(" "),e("p",[e("strong",[a._v("지원 기체:")])]),a._v(" "),e("ul",[e("li",[a._v("쿼드콥터")])]),a._v(" "),e("p",[a._v("jMAVSim에서 PX4 SITL과 연결 설정 방법을 설명합니다.")]),a._v(" "),e("div",{staticClass:"custom-block tip"},[e("p",{staticClass:"custom-block-title"},[a._v("TIP")]),a._v(" "),e("p",[a._v("jMAVSim은 HITL 시뮬레이션이 가능합니다.("),e("RouterLink",{attrs:{to:"/ko/simulation/hitl.html#jmavsim_hitl_configuration"}},[a._v("여기에 표시된 대로")]),a._v(").")],1)]),a._v(" "),e("h2",{attrs:{id:"설치"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#설치"}},[a._v("#")]),a._v(" 설치")]),a._v(" "),e("p",[a._v("jMAVSim 설정은 "),e("RouterLink",{attrs:{to:"/ko/dev_setup/dev_env.html"}},[a._v("표준 빌드 지침")]),a._v("(macOS, Ubuntu Linux, Windows용)에 설명되어 있습니다.")],1),a._v(" "),e("h2",{attrs:{id:"시뮬레이션-환경"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#시뮬레이션-환경"}},[a._v("#")]),a._v(" 시뮬레이션 환경")]),a._v(" "),e("p",[a._v("루프 시뮬레이션 소프트웨어는 호스트 시스템에서 전체 시스템을 실행하고 자동조종장치를 시뮬레이션합니다. 로컬 네트워크에서 시뮬레이터에 연결합니다. 설정은 다음과 같습니다.")]),a._v(" "),e("p",[e("a",{attrs:{href:"https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ3JhcGggTFI7XG4gIFNpbXVsYXRvci0tPk1BVkxpbms7XG4gIE1BVkxpbmstLT5TSVRMOyIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0In0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9",target:"_blank",rel:"noopener noreferrer"}},[e("img",{attrs:{src:"https://mermaid.ink/img/eyJjb2RlIjoiZ3JhcGggTFI7XG4gIFNpbXVsYXRvci0tPk1BVkxpbms7XG4gIE1BVkxpbmstLT5TSVRMOyIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0In0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9",alt:"인어 그래프: SITL 시뮬레이터"}}),e("OutboundLink")],1)]),a._v(" "),e("h2",{attrs:{id:"sitl-실행"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#sitl-실행"}},[a._v("#")]),a._v(" SITL 실행")]),a._v(" "),e("p",[e("RouterLink",{attrs:{to:"/ko/dev_setup/dev_env.html"}},[a._v("시뮬레이션 전제 조건")]),a._v("이 시스템에 설치를 확인후 실행하면 됩니다. 편리한 make 대상은 POSIX 호스트 빌드를 컴파일하고 시뮬레이션을 실행합니다.")],1),a._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[a._v("make")]),a._v(" px4_sitl_default jmavsim\n")])])]),e("p",[a._v("그러면 다음과 같은 PX4 셸이 출력됩니다.")]),a._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("[")]),a._v("init"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("]")]),a._v(" shell id: "),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("140735313310464")]),a._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("[")]),a._v("init"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("]")]),a._v(" task name: px4\n\n______  __   __    ___\n"),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" ___ "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v(" / /   /   "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("\n"),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("_/ /  "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v(" V /   / /"),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("\n"),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("  __/   /   "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("  / /_"),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("\n"),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("     / /^"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("___  "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("\n"),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("_"),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("     "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("/   "),e("span",{pre:!0,attrs:{class:"token punctuation"}},[a._v("\\")]),a._v("/     "),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v("|")]),a._v("_/\n\nReady to fly.\n\n\npxh"),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v("\n")])])]),e("p",[a._v("또한 "),e("a",{attrs:{href:"https://github.com/PX4/jMAVSim",target:"_blank",rel:"noopener noreferrer"}},[a._v("jMAVSim"),e("OutboundLink")],1),a._v(" 시뮬레이터의 3D 보기를 보여주는 창이 나타납니다.")]),a._v(" "),e("p",[e("img",{attrs:{src:s(1337),alt:"jMAVSim 3D 보기"}})]),a._v(" "),e("h2",{attrs:{id:"하늘로-띄우기"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#하늘로-띄우기"}},[a._v("#")]),a._v(" 하늘로 띄우기")]),a._v(" "),e("p",[a._v("시스템이 상태 정보를 인쇄하기 시작합니다. 위치 잠금이 설정되면 비행을 시작할 수 있습니다(콘솔에 "),e("em",[a._v("EKF commending GPS fusion")]),a._v(" 메시지가 표시된 직후).")]),a._v(" "),e("p",[a._v("이륙하려면 콘솔에 다음 명령어를 입력하십시오.")]),a._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[a._v("pxh"),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v(">")]),a._v(" commander takeoff\n")])])]),e("p",[e("em",[a._v("QGroundControl")]),a._v("을 사용하여 임무를 수행하거나, "),e("a",{attrs:{href:"#joystick"}},[a._v("조이스틱")]),a._v("에 연결할 수 있습니다.")]),a._v(" "),e("h2",{attrs:{id:"사용법-설정-옵션"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#사용법-설정-옵션"}},[a._v("#")]),a._v(" 사용법/설정 옵션")]),a._v(" "),e("p",[a._v("모든 시뮬레이터에 적용되는 옵션은 최상위 "),e("RouterLink",{attrs:{to:"/ko/simulation/#sitl-simulation-environment"}},[a._v("시뮬레이션")]),a._v("편에서 설명합니다(일부는 아래에서 중복될 수 있음).")],1),a._v(" "),e("h3",{attrs:{id:"센서-하드웨어-오류-시뮬레이션"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#센서-하드웨어-오류-시뮬레이션"}},[a._v("#")]),a._v(" 센서/하드웨어 오류 시뮬레이션")]),a._v(" "),e("p",[e("RouterLink",{attrs:{to:"/ko/simulation/failsafes.html"}},[a._v("안전장치 시뮬레이션")]),a._v("에서는 GPS 오류와 배터리 소모와 같은 안전 비상안전장치를 트리거하는 방법을 설명합니다.")],1),a._v(" "),e("h3",{attrs:{id:"사용자-지정-이륙-위치-설정"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#사용자-지정-이륙-위치-설정"}},[a._v("#")]),a._v(" 사용자 지정 이륙 위치 설정")]),a._v(" "),e("p",[a._v("기본 이륙 위치는 "),e("code",[a._v("PX4_HOME_LAT")]),a._v(", "),e("code",[a._v("PX4_HOME_LON")]),a._v(" 및 "),e("code",[a._v("PX4_HOME_ALT")]),a._v(" 환경변수를 사용하여 재정의할 수 있습니다.")]),a._v(" "),e("p",[a._v("예를 들어 위도, 경도 및 고도를 설정은 아래와 같습니다.")]),a._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v("export PX4_HOME_LAT=28.452386\nexport PX4_HOME_LON=-13.867138\nexport PX4_HOME_ALT=28.5\nmake px4_sitl_default jmavsim\n")])])]),e("h3",{attrs:{id:"시뮬레이션-속도-변경"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#시뮬레이션-속도-변경"}},[a._v("#")]),a._v(" 시뮬레이션 속도 변경")]),a._v(" "),e("p",[a._v("시뮬레이션 속도는 환경 변수 "),e("code",[a._v("PX4_SIM_SPEED_FACTOR")]),a._v("를 사용하여 실시간으로 증가 또는 감소할 수 있습니다.")]),a._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v("export PX4_SIM_SPEED_FACTOR=2\nmake px4_sitl_default jmavsim\n")])])]),e("p",[a._v("자세한 내용은 "),e("RouterLink",{attrs:{to:"/ko/simulation/#simulation_speed"}},[a._v("시뮬레이션 > 실시간보다 빠른 시뮬레이션 실행")]),a._v("편을 참고하십시오.")],1),a._v(" "),e("p",[e("a",{attrs:{id:"joystick"}})]),a._v(" "),e("h3",{attrs:{id:"조이스틱-사용법"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#조이스틱-사용법"}},[a._v("#")]),a._v(" 조이스틱 사용법")]),a._v(" "),e("p",[a._v("조이스틱과 썸 조이스틱 지원은 "),e("em",[a._v("QGroundControl")]),a._v("에서 지원됩니다("),e("RouterLink",{attrs:{to:"/ko/simulation/#joystick-gamepad-integration"}},[a._v("설정 방법")]),a._v(" 참고).")],1),a._v(" "),e("h3",{attrs:{id:"wi-fi-드론-시뮬레이션"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#wi-fi-드론-시뮬레이션"}},[a._v("#")]),a._v(" Wi-Fi 드론 시뮬레이션")]),a._v(" "),e("p",[a._v("로컬 네트워크에서 Wi-Fi로 연결된 드론을 시뮬레이션하는 특별한 대상이 있습니다.")]),a._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[e("span",{pre:!0,attrs:{class:"token function"}},[a._v("make")]),a._v(" broadcast jmavsim\n")])])]),e("p",[a._v("시뮬레이터는 실제 드론처럼 로컬 네트워크에서 주소를 브로드캐스트합니다.")]),a._v(" "),e("h3",{attrs:{id:"jmavsim과-px4를-각각-시작"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#jmavsim과-px4를-각각-시작"}},[a._v("#")]),a._v(" JMAVSim과 PX4를 각각 시작")]),a._v(" "),e("p",[a._v("JMAVSim과 PX4를 별도로 시작할 수 있습니다.")]),a._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v("./Tools/jmavsim_run.sh -l\nmake px4_sitl none\n")])])]),e("p",[a._v("이것은 더 빠른 주기로 테스트할 수 있습니다(jMAVSim은 재시작에 훨씬 더 많은 시간이 소요됨).")]),a._v(" "),e("h3",{attrs:{id:"헤드리스-모드"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#헤드리스-모드"}},[a._v("#")]),a._v(" 헤드리스 모드")]),a._v(" "),e("p",[a._v("GUI 없이 jMAVSim을 시작하려면, 다음과 같이 환경 변수 "),e("code",[a._v("HEADLESS=1")]),a._v("을 설정합니다.")]),a._v(" "),e("div",{staticClass:"language-bash extra-class"},[e("pre",{pre:!0,attrs:{class:"language-bash"}},[e("code",[e("span",{pre:!0,attrs:{class:"token assign-left variable"}},[a._v("HEADLESS")]),e("span",{pre:!0,attrs:{class:"token operator"}},[a._v("=")]),e("span",{pre:!0,attrs:{class:"token number"}},[a._v("1")]),a._v(" "),e("span",{pre:!0,attrs:{class:"token function"}},[a._v("make")]),a._v(" px4_sitl jmavsim\n")])])]),e("h2",{attrs:{id:"다중-차량-시뮬레이션"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#다중-차량-시뮬레이션"}},[a._v("#")]),a._v(" 다중 차량 시뮬레이션")]),a._v(" "),e("p",[a._v("JMAVSim은 다중 차량 시뮬레이션이 가능합니다. "),e("RouterLink",{attrs:{to:"/ko/simulation/multi_vehicle_jmavsim.html"}},[a._v("JMAVSim이 있는 다중 차량 시뮬레이션")]),a._v(".")],1),a._v(" "),e("h2",{attrs:{id:"확장-및-사용자-정의"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#확장-및-사용자-정의"}},[a._v("#")]),a._v(" 확장 및 사용자 정의")]),a._v(" "),e("p",[a._v("시뮬레이션 인터페이스를 확장하거나 사용자 정의하려면 "),e("strong",[a._v("Tools/jMAVSim")]),a._v(" 폴더에서 파일을 편집하십시오. 코드는 Github의 "),e("a",{attrs:{href:"https://github.com/px4/jMAVSim",target:"_blank",rel:"noopener noreferrer"}},[a._v("jMAVSim 저장소"),e("OutboundLink")],1),a._v("에서 제공합니다.")]),a._v(" "),e("div",{staticClass:"custom-block note"},[e("p",{staticClass:"custom-block-title"},[a._v("Note")]),a._v(" "),e("p",[a._v("빌드 시스템은 시뮬레이터를 포함하여 모든 종속성을 체크아웃할 하위 모듈에 적용합니다. 디렉토리에 있는 파일의 변경 사항을 덮어쓰지는 않지만, 이러한 변경 사항이 커밋될 때 하위 모듈은 새 커밋 해시를 사용하여 펌웨어 저장소에 등록하여야 합니다. 이렇게 하려면, "),e("code",[a._v("git add Tools/jMAVSim")]),a._v(" 및 변경 사항을 커밋합니다. 시뮬레이터의 GIT 해시가 업데이트됩니다.")])]),a._v(" "),e("h2",{attrs:{id:"ros-인터페이스"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#ros-인터페이스"}},[a._v("#")]),a._v(" ROS 인터페이스")]),a._v(" "),e("p",[a._v("시뮬레이션은 실제 차량에 탑승하는 것과 같은 방식으로 "),e("RouterLink",{attrs:{to:"/ko/simulation/ros_interface.html"}},[a._v("ROS에 인터페이스")]),a._v("될 수 있습니다.")],1),a._v(" "),e("h2",{attrs:{id:"중요-파일"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#중요-파일"}},[a._v("#")]),a._v(" 중요 파일")]),a._v(" "),e("ul",[e("li",[a._v("시작 스크립트는 "),e("RouterLink",{attrs:{to:"/ko/concept/system_startup.html"}},[a._v("시스템 시작")]),a._v("에서 설명합니다.")],1),a._v(" "),e("li",[a._v('시뮬레이션된 루트 파일 시스템("'),e("code",[a._v("/")]),a._v('" 디렉토리)은 다음의 빌드 디렉토리 내에 생성됩니다: '),e("code",[a._v("build/px4_sitl_default/tmp/rootfs")]),a._v(".")])]),a._v(" "),e("h2",{attrs:{id:"문제-해결"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#문제-해결"}},[a._v("#")]),a._v(" 문제 해결")]),a._v(" "),e("h3",{attrs:{id:"java-long-noclassdeffounderror"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#java-long-noclassdeffounderror"}},[a._v("#")]),a._v(" java.long.NoClassDefFoundError")]),a._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v('Exception in thread "main" java.lang.NoClassDefFoundError: javax/vecmath/Tuple3d\nat java.base/java.lang.Class.forName0(Native Method)\nat java.base/java.lang.Class.forName(Class.java:374)\nat org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)\nCaused by: java.lang.ClassNotFoundException: javax.vecmath.Tuple3d\nat java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)\nat java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)\nat java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)\n... 3 more\nException in thread "main" java.lang.NoClassDefFoundError: javax/vecmath/Tuple3d\nat java.base/java.lang.Class.forName0(Native Method)\nat java.base/java.lang.Class.forName(Class.java:374)\nat org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)\nCaused by: java.lang.ClassNotFoundException: javax.vecmath.Tuple3d\nat java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)\nat java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)\nat java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)\n')])])]),e("p",[a._v("jMAVSim 하위 모듈이 "),e("a",{attrs:{href:"https://github.com/PX4/jMAVSim/pull/119",target:"_blank",rel:"noopener noreferrer"}},[a._v("최신 jar 라이브러리로 업데이트"),e("OutboundLink")],1),a._v("되고, Java 11 또는 Java 14가 제대로 실행되면 이 오류가 더 이상 발생하지 않습니다.")]),a._v(" "),e("h3",{attrs:{id:"an-illegal-reflective-access-operation-has-occured"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#an-illegal-reflective-access-operation-has-occured"}},[a._v("#")]),a._v(" An illegal reflective access operation has occured")]),a._v(" "),e("p",[a._v("이 경고는 무시할 수 있습니다(경고가 나타나도, 시뮬레이션은 정상적으로 작동함).")]),a._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v("WARNING: An illegal reflective access operation has occurred\nWARNING: Illegal reflective access by javax.media.j3d.JoglPipeline (rsrc:j3dcore.jar) to method sun.awt.AppContext.getAppContext()\nWARNING: Please consider reporting this to the maintainers of javax.media.j3d.JoglPipeline\nWARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations\nWARNING: All illegal access operations will be denied in a future release\nInconsistency detected by ld.so: dl-lookup.c: 112: check_match: Assertion version->filename == NULL || ! _dl_name_match_p (version->filename, map)' failed!\n")])])]),e("h3",{attrs:{id:"java-awt-awterror-assistive-technology-not-found-org-gnome-accessibility-atkwrapper"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#java-awt-awterror-assistive-technology-not-found-org-gnome-accessibility-atkwrapper"}},[a._v("#")]),a._v(" java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper")]),a._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v('Exception in thread "main" java.lang.reflect.InvocationTargetException\nat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\nat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\nat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\nat java.lang.reflect.Method.invoke(Method.java:498)\nat org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)\nCaused by: java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper\nat java.awt.Toolkit.loadAssistiveTechnologies(Toolkit.java:807)\nat java.awt.Toolkit.getDefaultToolkit(Toolkit.java:886)\nat java.awt.Window.getToolkit(Window.java:1358)\nat java.awt.Window.init(Window.java:506)\nat java.awt.Window.(Window.java:537)\nat java.awt.Frame.(Frame.java:420)\nat java.awt.Frame.(Frame.java:385)\nat javax.swing.JFrame.(JFrame.java:189)\nat me.drton.jmavsim.Visualizer3D.(Visualizer3D.java:104)\nat me.drton.jmavsim.Simulator.(Simulator.java:157)\nat me.drton.jmavsim.Simulator.main(Simulator.java:678)\n')])])]),e("p",[a._v("위의 오류가 나타나면, 다음 방법으로 해결하십시오.")]),a._v(" "),e("p",[e("strong",[a._v("accessibility.properties")]),a._v(" 파일을 수정합니다.")]),a._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v("sudo gedit /etc/java-8-openjdk/accessibility.properties\n")])])]),e("p",[a._v("아래 표시된 줄을 주석 처리하십시오.")]),a._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v("#assistive_technologies=org.GNOME.Acessibility.AtkWrapper\n")])])]),e("p",[a._v("자세한 내용은 "),e("a",{attrs:{href:"https://github.com/PX4/PX4-Autopilot/issues/9557",target:"_blank",rel:"noopener noreferrer"}},[a._v("GitHub 문제"),e("OutboundLink")],1),a._v("를 확인하십시오. 기고자가 "),e("a",{attrs:{href:"https://askubuntu.com/questions/695560",target:"_blank",rel:"noopener noreferrer"}},[a._v("skubuntu.com"),e("OutboundLink")],1),a._v("에서 수정 사항을 찾았습니다.")]),a._v(" "),e("h3",{attrs:{id:"exception-in-thread-main-java-lang-unsupportedclassversionerror"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#exception-in-thread-main-java-lang-unsupportedclassversionerror"}},[a._v("#")]),a._v(' Exception in thread "main" java.lang.UnsupportedClassVersionError:')]),a._v(" "),e("p",[a._v("jMAVsim을 컴파일시 다음 오류가 발생할 수 있습니다.")]),a._v(" "),e("div",{staticClass:"language- extra-class"},[e("pre",{pre:!0,attrs:{class:"language-text"}},[e("code",[a._v('Exception in thread "main" java.lang.UnsupportedClassVersionError: me/drton/jmavsim/Simulator has been compiled by a more recent version of the Java Runtime (class file version 59.0), this version of the Java Runtime only recognizes class file versions up to 58.0\n')])])]),e("p",[a._v("이 오류는 사용자 환경에 최신 버전의 Java가 필요함을 알려줍니다. 클래스 파일 버전 58은 jdk14에, 버전 59는 jdk15 등에 해당합니다.")]),a._v(" "),e("p",[a._v("MacOS에서 이 문제를 해결하려면, homebrew를 사용하여 OpenJDK를 설치하는 것이 좋습니다.")]),a._v(" "),e("div",{staticClass:"language-sh extra-class"},[e("pre",{pre:!0,attrs:{class:"language-sh"}},[e("code",[a._v("brew "),e("span",{pre:!0,attrs:{class:"token function"}},[a._v("install")]),a._v(" --cask adoptopenjdk15\n")])])])])}),[],!1,null,null,null);t.default=r.exports}}]);