[英]run a jar file (generated by ant) in command line
我有一个可以正常工作的build.xml文件。 问题是生成的jar文件,我需要在不运行“ ant run”的情况下运行它
如何运行jar文件? 与
java -jar Main.jar main.Main
给我:
Exception in thread "main" java.lang.NoClassDefFoundError: org/neo4j/graphdb/GraphDatabaseService
这就是我创建jar文件(build.xml)的方式:
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile= "${jar.dir}/${ant.project.name}.jar" basedir="${build.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
<target name="compile">
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.dir}/${conf.dir}"/>
<javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="classpath" includeantruntime="false"/>
<copy todir="${build.dir}/${conf.dir}">
<fileset dir="${conf.dir}"/>
</copy>
</target>
<target name="run" >
<java fork="true" classname="${main-class}">
<classpath>
<path refid="classpath"/>
<path location="${jar.dir}/${ant.project.name}.jar"/>
</classpath>
</java>
</target>
<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar"/>
</path>
“蚂蚁运行”任务与此罐子一起正常工作。 我如何在没有蚂蚁的情况下运行该项目?
使用java -cp Main.jar main.Main
, -jar
用于捆绑的jar,并带有清单,说明要使用哪个类作为主类。 您使用-cp
(在您的ant构建文件中)所做的只是将其放在主路径上:您将main.Main
明确指定为主要类,而不是在清单中。
您还应该将其他jar放在类路径中(例如-cp lib/example1.jar:lib/example2.jar:Main.jar
)。 根据匹配**/*.jar
,可能有很多。
你有没有尝试过:
java -jar Main.jar
您是否检查过Main.jar实际上是否包含org/neo4j/graphdb/GraphDatabaseService
类?
neo4j.jars在运行时丢失。 添加一个类路径参数,例如:
java -cp yourLibDir -jar Main.jar
您需要在命令行中添加-classpath xxx.jar
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.