运行时发生ClassNotFoundException

时间:2018-08-09 09:43:17

标签: java ant

我是Java新手,但是Java应用程序有问题。

我使用Ant构建了一个应用,当我尝试使用java -jar appName.jar运行该应用时,出现了一个错误ClassNotFoundException

问题是在主类中我导入了这样的库:

import de.SigX.Configuration.IniFile;
import de.signotec.STPad.api.SigPadApi;
import de.signotec.STPad.api.SigPadDevice;
import de.signotec.STPad.api.SigPadFacade;
import de.signotec.STPad.api.exceptions.SigPadApiException;

该异常仅在

上引发
de.signotec.STPad.api.exceptions.SigPadApiException

有人知道为什么吗?

编辑:

Build.xml结构:

-<project basedir="." default="default" name="Test">
<description>Builds, tests, and runs the project Test.</description>
<import file="nbproject/build-impl.xml"/>
-<target name="-post-jar">
<copy file="lib\libSTPadJava.so" todir="${dist.dir}\lib"/>

<copy file="lib\libSTPadJava64.so" todir="${dist.dir}\lib"/>
<copy file="lib\STPadJava64.dll" todir="${dist.dir}\lib"/>
<copy file="lib\STPadJava.dll" todir="${dist.dir}\lib"/>
<copy file="log4j2.json" todir="${dist.dir}"/>

<copy file="lib\property.ini" todir="${dist.dir}\lib"/>
</target>
</project> 

1 个答案:

答案 0 :(得分:1)

“导入”关键字不会导入库或将库添加到运行时。它只是一个类导入,可以在不提供完全限定名称的情况下帮助引用一个类。它只会在编译时使用。 通过jar文件运行Java应用程序时,应通过-classpath或-cp指向所有依赖项(jar),或者应将所有这些类嵌入主jar文件中。