1、我现在使用ant打jar包遇到了设置class-path路径问题,如果在本地环境上设置绝对路径打的jar包可以运行,因为是依赖的本地jar包的路径
2、但是如果到其他环境上就无法运行,我现在已经把绝对路径的所有依赖jar包已经打进了jar中,可是我在指定相对路径的时候无效
打好后的jar目录如下:
com 这里都是编译后的.class文件
lib 这里都是依赖的jar包
META-INF 这里就是META-INF的信息
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.1
Created-By: 1.6.0_21-b06 (Sun Microsystems Inc.)
Build-By: Systems
Main-class: com.yoyosys.cloudindex.loadtest.CloudLoadTestThread
Class-Path: ./lib/lucene-core-3.0.2.jar ./lib/bac
kport-util-concurrent-3.1.jar
<target name="build-load-jar" depends="compile-java">
<copy todir="${build.java.classes}">
<fileset file="conf/*" />
</copy>
<copy todir="${build.lib}" >
<fileset file="${lib.dir}/*" />
</copy>
<jar destfile="${build.dist}/${jar-name-load}" basedir="${build.java.classes}" >
<manifest>
<attribute name="Build-By" value="Systems" />
<attribute name="Main-class" value="com.yoyosys.cloudindex.loadtest.CloudLoadTestThread" />
<attribute name="Class-Path" value="
./lib/lucene-core-3.0.2.jar
./lib/backport-util-concurrent-3.1.jar " />
</manifest>
</jar>
</target>
3、运行时报的异常
denghaiping@desktop:~/workspace/cloudindex$ java -jar build/dist/cloudindex-loadtest-1.0.jar localindex 1 10
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/lucene/analysis/Analyzer
Caused by: java.lang.ClassNotFoundException: org.apache.lucene.analysis.Analyzer
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
我想请教的问题就是:
这样设置相对路径的依赖jar包是否正确?帮我解决十分感谢