3
我有以下文件後:內部類不包含在JAR文件中運行「罐子CF」
java_classes/TerrainMesh.class
java_classes/TerrainMesh$Vertex.class
他們從以下源被編:
class TerrainMesh {
static class Vertex {
// ...
}
}
}
我建立一個JAR文件是這樣的:
jar cf jar/cities.jar -C java_classes "cities/TerrainMesh.class" -C java_classes "cities/TerrainMesh$Vertex.class"
檢查與jar tf jar/cities.jar
的JAR內容給我:
META-INF/
META-INF/MANIFEST.MF
cities/TerrainMesh.class
正如您所看到的,JAR文件中缺少TerrainMesh$Vertex.class
。可以預見,當調用TerrainMesh
中使用內部類Vertex
的方法時,我得到java.lang.NoClassDefFoundError
。我很確定這是因爲內部類不包含在JAR中。
如何獲取內部類到JAR文件中?看起來很奇怪,jar cf
忽略它。
對於它的價值,我已驗證在其他人制作的JAR文件上運行jar tf
確實顯示內部類。