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