gpt4 book ai didi

java - 使用 bndtools 包装从默认包导入的第三方 jar

转载 作者:行者123 更新时间:2023-12-02 04:02:40 26 4
gpt4 key购买 nike

我想包装第三方 jar 。不幸的是,供应商将一个具有单一方法的单一类 (a.class) 放入默认包中。

当我尝试使用 Include-Resource: @lib/acme-8.0.jar 包含资源时,会导致以下错误:

The default package '.' is not permitted by the Import-Package syntax.
This can be caused by compile errors in Eclipse because Eclipse creates valid class files regardless of compile errors.
The following package(s) import from the default package [com.acme.util]

bnd print -all acme-8.0.jar 给出以下输出(缩短,供应商名称替换为 acme)

[API USES]
. []

com.acme.common []

com.acme.acmedrt [com.acme.acmedrt.types, com.acme.acmedrt.comm.jobtransport, com.acme.acmedrt.workflow.type
s]

com.acme.acmedrt.impl [com.acme.acmedrt, com.acme.acmedrt.types, org.apache.commons.logging, com.acme.acmedrt.imp
l.types, com.acme.acmedrt.comm.jobtransport, com.acme.acmedrt.pool, org.apache.commons.pool, com.acme.acmedrt.workflow.types]

com.acme.acmedrt.impl.types [com.acme.acmedrt.types, com.acme.acmedrt, com.acme.acmedrt.impl, org.xml.sax]

com.acme.acmedrt.notification [com.acme.acmedrt]

com.acme.acmedrt.pool [com.acme.acmedrt, com.acme.acmedrt.impl.types, com.acme.acmedrt.impl, com.acme.acmedrt.types,
org.apache.commons.pool, com.acme.acmedrt.workflow.types]

com.acme.acmedrt.types [com.acme.acmedrt, com.acme.common]

com.acme.acmedrt.util []

com.acme.acmedrt.workflow.types [com.acme.common]

com.acme.tools []

com.acme.util []

com.acme.util.xml []


[LIST]

a.class
META-INF
MANIFEST.MF
com
com <no contents>
com/acme
com/acme <no contents>
com/acme/common
Enum.class
com/acme/acmedrt
[...]

如果我正确理解此输出,则有几个包使用默认包。这怎么可能呢?据我所知,您无法从默认包中导入类。

我已经联系了供应商,请求移动有问题的类。他很可能不会听从我的建议。

是否有解决方法来处理默认包中的类?

最佳答案

您可能可以采用以下选项:

 -fixupmessages: "The default package "

关于java - 使用 bndtools 包装从默认包导入的第三方 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34721015/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com