我可以在Windows和Mac OS X上干净地构建我的应用程序,但在Windows上尝试运行应用程序时,我得到了一个关于我的主类的未找到类的异常
未找到主$ 4。
类就在那里,它构建得很干净。为什么不能找到类文件? Jar可以在OS X中运行。
Jar的创建方式如下。
<target name="jar" depends="">
<jar destfile="build/application.jar" >
<manifest>
<attribute name="Built-By" value="Hamza"/>
<attribute name="Main-Class" value="application"/>
</manifest>
<fileset dir="build">
<include name="**/*.class"/>
<include name="**/*.png"/>
<exclude name="**/*.jar"/>
</fileset>
</jar>
</target>
我可以在OS X上运行它而没有任何错误,但在Windows中我得到类未找到异常。
答案 0 :(得分:1)
是否使用相同的JVM运行? main $ 4似乎表明它是一个没有找到的匿名类。没有更多信息,很难帮助你。也许提供一段代码和一些堆栈跟踪,以及你正在使用的JRE版本?
错字:在 windows 和Mac OS X上干净利落地在 windows
答案 1 :(得分:1)
Main-Class属性是否真的设置为“application”?
Main-Class应指明您要运行的类的相对路径,例如“myPackage.Application”,或简称为“Main”。
答案 2 :(得分:0)
信息不多,但看起来主类中的匿名类无法解析它所具有的依赖性,因此无法创建。
此外,构建时和运行时类路径之间存在差异。您的实际运行时可能需要比构建更多的jar。
例如,构建代码需要包含代码中引用的接口的jar,但是您需要具有该接口实现的jar来运行代码。
编辑: 您的更新显示了您已经说过的构建(哪个OS无关紧要),因为这是Java。您的问题是运行时的类路径。您是否在一个操作系统中设置了类路径环境变量而不是另一个?我们无法从中了解您的依赖关系。了解所涉及的匿名类的内容将有助于找出缺少的依赖项。