Java Jar类未找到异常

时间:2009-06-04 13:35:34

标签: java jar classpath

我可以在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中我得到类未找到异常。

3 个答案:

答案 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。您的问题是运行时的类路径。您是否在一个操作系统中设置了类路径环境变量而不是另一个?我们无法从中了解您的依赖关系。了解所涉及的匿名类的内容将有助于找出缺少的依赖项。