我正在使用Java 1.6,Eclipse和Ant。
以下是我创建和运行jar文件的目标:
<!-- Settings -->
<property file="build.properties" />
<path id="classpath">
<fileset dir="${lib.dir}" includes="**/*.jar" />
</path>
<!-- Compile -->
<target name="compile">
<mkdir dir="${classes.dir}" />
<javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false">
<classpath refid="classpath" />
</javac>
</target>
<!-- Package .jar -->
<target name="jar">
<mkdir dir="${jar.dir}" />
<jar destfile="${jar.dir}/App.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="main.App" />
</manifest>
</jar>
</target>
<!-- Run .jar -->
<target name="run">
<java jar="${jar.dir}/App.jar" fork="true" />
</target>
问题是,当我(通过Ant或命令行)运行此jar时,收到错误消息:
Exception in thread "main" java.lang.NoClassDefFoundError: net/xeoh/plugins/base/impl/PluginManagerFactory
[java] at plugins.PluginLoader.<clinit>(Unknown Source)
一些可能有用的知识:
当我打印我的类路径时,它表明所有必需的JAR都在其中。它还显示了类路径的Eclipse GUI版本。
我尝试清理项目(通过Eclipse和Ant)都无济于事。
似乎缺少的库.jar 不是 .jar中的.jar(这似乎是一个常见问题)。
这是唯一的错误。其他班级似乎都觉得图书馆不错…
您已经设置了编译类路径,但是App.jar不包括您的库(仅包含您编译的类)或清单类路径。
您需要执行以下操作:
<target name="jar">
<mkdir dir="${jar.dir}" />
<manifestclasspath property="manifest.classpath"
jarfile="${jar.dir}/App.jar">
<classpath refid="classpath" />
</manifestclasspath>
<jar destfile="${jar.dir}/App.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="main.App" />
<attribute name="Class-Path" value="${manifest.classpath}" />.
</manifest>
</jar>
</target>
另请参见ant
manifestclasspath任务
问题内容: 我试图在一些使用ant脚本的旧项目上进行“干净的专家”设置。我对蚂蚁知之甚少,所以我的问题似乎很幼稚。 我快完成了,但是由于classpath中的冗余,所以传递ant脚本失败了。如果我了解构建,则这些行应将“提供”范围内的每个库添加到类路径中: 然后这个: 将那些依赖项添加到ant.home目录中的库中。 麻烦的是,我使用的maven pom依赖于我无法修改的父pom,因此,我的类路径
由于未触发SleuthKafkaAspect.WrapProducerFactory()方法,跟踪信息不会通过kafka消息传播。在生产者端,消息被正确发送,跟踪信息被正确记录。在消费者端,将创建一个新的traceId和spanId。 以下两个日志记录行显示了traceId、spanId(和parentId)的不同值: 首先,使用Krafdrop和调试,我验证了消息头不包含任何跟踪信息。 之后,我
问题内容: 想知道不指定classpath选项时默认的classpath是什么吗? 问题答案: 当前的工作目录()。 从Java™教程中:PATH和CLASSPATH: 类路径 的 默认值为“。” ,表示仅搜索当前目录。指定CLASSPATH变量或-cp命令行开关将覆盖此值。 这包括子目录吗? 不,在类路径中没有条目是“递归的”。您必须明确列出每个子目录(或jar)。但是,如果您有一个表示clas
反应路由路径不工作 它在所有URL中仅显示产品组件 我已经灌输了react路由器dom,还导入了BrowserRouter作为路由器、交换机、路由、链路 到底是什么问题?我想不出来。
使用Linux;应用程序目录为: java-classpath/home/momy/a1/specter src.spectermain.mainclass 我得到这个错误:错误:无法找到或加载主类src.spectersafemain.MainClass 在netbeans上,该应用程序工作得很好…。我将应用程序重新打包到。exe版本,.exe开始工作,但DB not work显示derby j
我一直在使用NetBeans为我做所有的编译/类路径工作,但是我想试一试: 下面是我在命令提示符中输入的内容 有人能指出为什么java找不到这个类吗?我该如何帮助它找到这个类 我在oracle文档中读到,我的类路径应该设置为主包。我的类在一个名为path的包中: 桌面 路径根据要求直接从记事本下载java: