gpt4 book ai didi

javac 无法在 .jar 中找到类,即使它们存在?

转载 作者:行者123 更新时间:2023-12-02 13:47:20 24 4
gpt4 key购买 nike

我在编译过程中包含了一个相当大的 JAR 文件,该文件是使用 Altova MapForce 生成的。 JAR 文件大约 65MB,编译工作正常。我需要添加更多映射,所以我这样做了,重新生成了我的 JAR,并尝试再次构建。 JAR 现在约为 80MB。

现在,即使我打开 JAR 来验证符号是否存在,我也会收到各种“找不到符号”错误消息!我是否达到了 JAR 大小的上限? JAR 文件中有超过 75,000 个类。

奇怪的是 Eclipse 自动完成功能在新的 JAR 中运行得很好;我只在构建时遇到这些错误。

如果这有什么区别的话,我正在使用 Ant。

谢谢

布莱恩

编辑:还有一些奇怪的事情:我打开了 javac 的详细输出。似乎在加载所有类之前我就开始出现编译错误:

[javac] [loading com\mycompany\myproject\*************************.class)]
[javac] [loading com\mycompany\myproject\*************************.class)]
[javac] [loading com\mycompany\myproject\*************************.class)]
[javac] [loading com\mycompany\myproject\*************************.class)]
[javac] [loading com\mycompany\myproject\*************************.class)]
[javac] C:\Users\*************************.java:38: cannot find symbol
[javac] symbol : class *************************
[javac] location: package com.mycompany.myproject.*************************
[javac] import com.mycompany.myproject.*************************;
[javac] ^
[javac] [loading com\altova\TraceProvider.class(com\altova:TraceProvider.class)]
[javac] [loading com\altova\io\StringInput.class(com\altova\io:StringInput.class)]
[javac] [loading com\altova\io\StringOutput.class(com\altova\io:StringOutput.class)]

最佳答案

查看您遇到的特定编译器错误、您的类路径等会很有帮助。如果它在 eclipse 中运行而不是在 ant 中运行,则可能是类路径问题,即您的 ant 脚本未设置相同的值类路径与 Eclipse 中的项目设置相同。

我正在开发一个包含大于 80MB 的 jar 文件的项目,没有问题,而且我认为 jar 文件或类似文件中的类数量没有上限。 jar 的大小和它包含的类的数量不太可能是您的问题。

您可以尝试编写一个简单的测试主程序,仅导入有问题的类,然后使用 javac 对其进行编译,仅在类路径上使用该 jar。如果该测试不起作用,那么您就知道您使用的 jar 有问题。如果它不起作用,则必须是 Ant 问题或类似问题。

您可以发布您的 ant 构建目标以及 ant 的详细输出吗?

关于javac 无法在 .jar 中找到类,即使它们存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7760980/

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