Класс 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
Другие вопросы по тегам