#neural-network #jna #fann #fannj
#нейронная сеть #jna #fann #fannj
Вопрос:
Я пытаюсь использовать 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, пожалуйста, объяснить, почему возникает эта ошибка?
Комментарии:
1. Не могли бы вы скопировать сообщение об ошибке в виде текста и вставить его сюда? Если кто-то будет искать ошибку в будущем, он сможет найти этот вопрос.
Ответ №1:
Убедитесь, что вы установили системное свойство 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
Ответ №2:
Вам необходимо загрузить недостающую библиотеку «jna». После получения вы должны указать его в eclipse (используя свойства вашего проекта> Путь сборки Java> Библиотеки и добавив jar (вы можете просмотреть его в разделе «Добавить внешние банки …»).).
Хороший способ получить все зависимости для проекта — это «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, он загрузит зависимости и по умолчанию поместит все библиотеки в ваш «homefolder /.m2». Итак, найдите библиотеку JNA, вы найдете ее в какой-нибудь папке, подобной этой: «~/.m2/repository/net/java/dev/jna / jna /3.2.7». Если в вашем проекте используются другие библиотеки, кроме fannj, вы можете добавить их в pom-файл, чтобы собрать все вместе.