找不到JNA类在Eclipse中使用FANNJ for Ubuntu时出错

时间:2014-06-27 07:04:03

标签: neural-network jna fann fannj

我正在尝试在Eclipse中使用FANNJ(在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)

可以在Ubuntu上与FANNJ合作的人解释为什么会出现这个错误吗?

2 个答案:

答案 0 :(得分:1)

你必须下载遗失的图书馆&#34; jna&#34;。获得它之后,你必须在eclipse中指出它(使用项目的属性&gt; Java Build Path&gt;库,并添加jar(你可以浏览它&#34;添加外部JAR ......&#34;)

获得项目所有依赖项的好方法是通过&#34; maven&#34;。你可以简单地创建一个&#34; pom.xml&#34;文件在项目的根文件夹上。所以写下来:

<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上,它将下载依赖项,默认情况下将所有库放在你的&#34; homefolder / .m2&#34;中。所以,浏览JNA库,你会在这样的文件夹中找到它:&#34;〜/ .m2 / repository / net / java / dev / jna / jna / 3.2.7&#34;。如果您的项目使用除了fannj之外的其他库,您可以将它添加到pom文件中以将所有内容组合在一起。

答案 1 :(得分:0)

确保将jna.library.path系统属性设置为FANN库的路径。此属性类似于java.library.path,但仅适用于JNA加载的库。

您还应该在启动VM之前更改相应的库访问环境变量。 (Linux上的LD_LIBRARY_PATH)

从命令行:

LD_LIBRARY_PATH=/usr/local/lib

java -Djna.library.path=/usr/local/lib -cp fannj-0.6.jar:jna-3.2.2.jar YourClass