gpt4 book ai didi

java - 错误路径警告,它来自哪里?

转载 作者:IT老高 更新时间:2023-10-28 20:31:52 27 4
gpt4 key购买 nike

当我用编译器警告 (JDK 1.5) 编译我的项目时,我收到一堆错误的路径元素警告:

Warning::[path] bad path element "C:\Users\User\MyJava\common\lib\junit.jar": 没有这样的文件或目录警告::[path] 错误路径元素“C:\Users\User\MyJava\common\lib\jdom.jar”:没有这样的文件或目录警告::[path] 错误路径元素“C:\Users\User\MyJava\common\lib\xerces.jar”:没有这样的文件或目录警告::[路径] 错误路径元素“C:\Users\User\MyJava\common\lib\xml-apis.jar”:没有这样的文件或目录

还有更多。

这是使用 IDEA 8.1.3。我在 IDEA 的配置中找不到任何指向这些文件的地方(我对整个项目进行了 grepped)。他们确实都不再以那个名字存在了,但是引用他们的是什么?

最佳答案

我认为@Yishai 有权(我会给他投赞成票)。我一直遇到这个。在我认为对 Java 语言来说是一个可怕的决定中,他们认为允许类路径设置进入 jar 文件中的 MANIFEST 文件是可以的。所以本质上,Jars 可以在其中包含指向其他类和位于其他地方的 jar 的文件,当它们指向的其他东西不存在时,您会看到与您收到的警告类似的警告。这些警告来自编译类路径中的 Jar 文件。因此,如果您真的在乎,您需要做的是追踪有问题的 jar 文件,提取 jar 文件的内容,删除 list 文件中的“类路径”设置并重新创建它们。像这样的东西(首先将 jar 移动到某个临时目录):

#Extract the jar file
jar xvf myfile.jar
rm myfile.jar
emacs ./META-INF/MANIFEST.MF

*Find the entry "Class-path:" and remove it completely and save the changes

#Rebuild the jar file
jar cvf myfile.jar ./*

这应该可以解决问题!

我不认为您只是想抑制这些消息,因为如果您想完全控制类路径上的内容,您应该搜索这些 list 文件并确保它们不会以您的方式混淆类路径不知道。

您可能需要查看大量 jar 文件,因此我通常最终使用 shell 循环来帮助我查看它们。您可以将所有有问题的 jar 复制到一个临时目录并运行这样的循环(bash 语法):

for i in *.jar; do echo $i; jar xf $i; grep -i 'class-path' ./META-INF/MANIFEST.MF; done

这将打印当前目录中每个 Jar 文件的名称,提取其内容,并 grep 其 list 文件以获取类路径条目。如果输出中的 jar 文件的名称后面有一个“Class-Path”打印输出,这意味着 Jar 在其 list 中具有类路径设置。通过这种方式,您有望找出需要对哪些 jar 采取行动。

关于java - 错误路径警告,它来自哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1344202/

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