Класс JNA не найден Ошибка при использовании FANNJ для Ubuntu в Eclipse
Я пытаюсь использовать FANNJ в Eclipse (в Ubuntu), пытаюсь создать игрушечную программу, но она продолжает выдавать эту ошибку, как показано ниже.
Код:
package myPackage;
import com.googlecode.fannj.Fann;
public class mainclass {
public static void man(String[] args) {
System.out.println("1");
Fann fann = new Fann("/home/sahil/Desktop/Intern/Java/eclipse/Workspace/UsingFANN/ANN_Net_Output1.net");
}
}
Ошибка:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jna/Platform at com.googlecode.fannj.Fann.<clinit>(Fann.java:51) at myPackage.mainclass.main(mainclass.java:9) Caused by: java.lang.ClassNotFoundException: com.sun.jna.Platform at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
Может ли кто-нибудь, кто работает с FANNJ на Ubuntu, объяснить, почему возникает эта ошибка?
2 ответа
Вы должны скачать недостающую библиотеку "JNA". После того, как вы получите его, вы должны указать его в eclipse (используя свойства вашего проекта> Java Build Path> Libraries и добавив jar (вы можете просмотреть его в "Add External JARs...").
Хороший способ получить все зависимости для проекта - "Maven". Вы можете просто создать файл "pom.xml" в корневой папке вашего проекта. Так запишите это:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.something</groupId>
<artifactId>MyProject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>MyProject</name>
<description>MyProject</description>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.googlecode.fannj/fannj -->
<dependency>
<groupId>com.googlecode.fannj</groupId>
<artifactId>fannj</artifactId>
<version>0.6</version>
</dependency>
</dependencies>
</project>
И, наконец, в командной строке типа # mvn install, он загрузит зависимости и по умолчанию поместит все библиотеки в вашу "домашнюю папку /.m2". Итак, найдите библиотеку JNA, вы найдете ее в какой-то папке, например: "~ /.m2 / repository / net / java / dev / jna / jna / 3.2.7". Если ваш проект использует другие библиотеки, кроме fannj, вы можете добавить его в файл pom, чтобы собрать все вместе.
Убедитесь, что вы установили системное свойство jna.library.path на путь к библиотеке FANN. Это свойство похоже на java.library.path, но применяется только к библиотекам, загруженным JNA.
Вы также должны изменить соответствующую переменную среды доступа к библиотеке перед запуском ВМ. (LD_LIBRARY_PATH в Linux)
Из командной строки:
LD_LIBRARY_PATH=/usr/local/lib
java -Djna.library.path=/usr/local/lib -cp fannj-0.6.jar:jna-3.2.2.jar YourClass