2017-02-13 46 views
0

我试图在gazebosim中运行一些基本的代码,项目建立良好,但一旦它连接到凉亭我得到的错误“线程中的异常”主“java.lang.UnsatisfiedLinkError:没有ntcore在java.library.path”线程“main”中的异常java.lang.UnsatisfiedLinkError:java.library.path中没有ntcore?

我已经找到了文件ntcore.so与-Djava'library.path

target name="simulate" depends="jar-for-simulation"> 
<sequential> 
    <echo>[simulate] You may now run Gazebo and your DriverStation</echo> 
    <echo>[simulate] Running Code.</echo> 
    <java jar="${simulation.dist.jar}" fork="true"> 
     <jvmarg value="-Djava.library.path={/home/alex/wpilib/java/current/lib/native/lib/libntcore.so}" /> 
    </java> 
</sequential> 

任何想法sepcified它的位置?这是推动我控制台的疯狂

输出:

Buildfile: /home/alex/workspace/TestRobo/build.xml 
Trying to override old definition of task classloader 
compile: 
[echo] [athena-compile] Compiling src with classpath=/home/alex/wpilib/java/current/lib/WPILib.jar:/home/alex/wpilib/java/current/lib/NetworkTables.jar:/home/alex/wpilib/java/current/lib/opencv.jar:/home/alex/wpilib/java/current/lib/cscore.jar to build 
jar-for-simulation: 
[echo] [jar-for-simulation] Building jar. 
    [jar] Building jar: /home/alex/workspace/TestRobo/dist/FRCUserProgramSim.jar 
simulate: 
[echo] [simulate] You may now run Gazebo and your DriverStation 
[echo] [simulate] Running Code. 
[java] Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar 
[java] resources = |[email protected]| 
[java] platform: /Linux/i386/ 
[java] Exception in thread "main" java.lang.UnsatisfiedLinkError: no ntcore in java.library.path 
[java]  at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1865) 
[java]  at java.lang.Runtime.loadLibrary0(Runtime.java:870) 
[java]  at java.lang.System.loadLibrary(System.java:1122) 
[java]  at edu.wpi.first.wpilibj.networktables.NetworkTablesJNI.<clinit>(NetworkTablesJNI.java:60) 
[java]  at edu.wpi.first.wpilibj.networktables.NetworkTable.initialize(NetworkTable.java:44) 
[java]  at edu.wpi.first.wpilibj.networktables.NetworkTable.getTable(NetworkTable.java:176) 
[java]  at edu.wpi.first.wpilibj.RobotBase.<init>(RobotBase.java:58) 
[java]  at edu.wpi.first.wpilibj.SampleRobot.<init>(SampleRobot.java:31) 
[java]  at org.usfirst.frc.team420.robot.Robot.<init>(Robot.java:29) 
[java]  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
[java]  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
[java]  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
[java]  at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
[java]  at java.lang.Class.newInstance(Class.java:442) 
[java]  at edu.wpi.first.wpilibj.RobotBase.main(RobotBase.java:190) 

回答

0

尝试设置java.library.path图书馆所在的目录,而不是库本身。

<jvmarg value="-Djava.library.path=/home/alex/wpilib/java/current/lib/native/lib" /> 

(林不知道,如果{}是必需的或有问题的?)

0

的错误的原因可以是以下;

原因:

PATH变量不包括其中包含的Java类的功能所要求的本地库的目录。

解决方法:

在Windows或/和Unix平台上,添加您的依赖关系到PATH变量。按照this文章,详细了解

OR

你可以在Eclipse启动配置

0

添加-Djava.library.path作为VM参数我不是很久以前,有这种确切的问题。我解决这个问题的方法是通过编译ntcore来源使用Gradle.

有关如何执行此操作的说明包含在ntcore的自述文件中。

相关问题