2009-06-04 314 views
0

我可以清晰地構建我的應用程序在Windows和Mac OS X,但在Windows上,當我嘗試運行應用程序我得到我的主類的類未發現異常Java的罐類未發現異常

主要$ 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

你可以添加你正在嘗試的命令行片段嗎? – Ram 2009-06-04 14:05:25

回答

1

它是否使用相同的JVM運行?主要4美元似乎表明這是一個匿名類沒有找到。如果沒有更多信息,很難幫助您。也許提供一段代碼和一些堆棧跟蹤,以及你正在使用的JRE版本?

錯字有:乾淨的窗口和Mac OS X,但在窗口

0

沒有太多的信息,但它看起來像在主類無法解決一些依賴它有一個匿名類,因而不能創建。

此外,構建時間和運行時類路徑之間也有差異。您的實際運行時可能需要比構建更多的jar。

例如,包含您在代碼中引用的接口的jar是構建代碼所必需的,但您需要具有該接口的實現的jar來運行代碼。

編輯: 您的更新顯示您的構建,你已經說過的作品(哪個操作系統無關緊要),因爲這是Java。你的問題是運行時的類路徑。你在一個OS中設置了classpath環境變量,而不是另一個?我們無法從中瞭解您的依賴關係。瞭解所涉及的匿名類的內容將有助於找出缺失的依賴關係。

1

Main-Class屬性是否真的設置爲「application」?

主要類應該指出要運行的類的相對路徑,例如: 「myPackage.Application」,或者簡單地「Main」。