我们正在研究java类以便自定义它。在这个定制之前,我们只想检查现有java jar文件(MMC.jar)的编译/反编译过程。
我们使用jd-gui工具
收集了MMC.jar下的所有java类文件因此,当我们编译现有的MMC.jar(没有自定义)时,它会附加6个错误
./com/mmc/model/acknowledgement/package-info.java:7: error: illegal start of
type abstract interface package-info {}
^
./com/mmc/model/acknowledgement/package-info.java:7: error: = expected
abstract interface package-info {}
^
./com/mmc/model/customer/package-info.java:7: error: <identifier> expected
abstract interface package-info {}
^
./com/mmc/model/customer/package-info.java:7: error: illegal start of type
abstract interface package-info {}
^
./com/mmc/model/customer/package-info.java:7: error: = expected
abstract interface package-info {}
^
6 errors
这是package-info java文件的内容
package com.mmc.model.customer;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;
@XmlSchema(namespace="http://www.iflex.com/mmc/model/customer",
elementFormDefault=XmlNsForm.QUALIFIED)
abstract interface package-info {}
此致 阿里
答案 0 :(得分:0)
您遇到编译错误的原因是 package-info 不允许使用标识符。您不能使用 - 字符命名类,接口,变量等对象。有关详细信息Naming rules,请参阅此答案。
但问题是您以错误的方式使用包信息文件。 package-info.java 文件的目的是在javadoc中添加包的简要说明:此包的目的,职责和内容。你不应该在这里声明任何类或接口。您需要在此文件中编写的所有内容都是此文件所在的包名称以及包汇总javadoc。 @sidgate评论引用了关于包信息文件责任的好答案。