我用ant javac运行java代码。我在eclipse和命令行中运行了ant script。但是Java类文件的大小不同。你能解释一下为什么在eclipse和命令行中使用javac ant script时会有大小错误吗?我怎么解决这个问题?
jq6vz3qz1#
据我所知,Java编译器可能会也可能不会在字节码中包含以下内容:
调用时实际的 javac 参数之间应该有差异。检查Ant的config和 javac 的默认参数值。目标Java平台版本可能也不同,这会导致.class文件大小的差异。如果使用了多个JDK,当然也意味着不同的类文件大小。
zvms9eto2#
javac默认情况下只在调试信息中生成行号(参见javac -g)。在Eclipse中,编译器类文件生成选项中的所有变量、行和源都是启用的。
2ledvvac3#
没有什么需要“解决”的; Eclipse使用它自己内置的增量编译器,编译器从相同的程序中产生稍微不同的输出是很常见的。
wdebmtf24#
如果您在使用ANT编译的类文件中遇到任何歧义,这是因为ANT的javac在默认情况下将调试模式设置为false。转折debug=“true”在javac的ANT脚本将生成相同的类文件,这是生成与maven或正常javac在cmd。
4条答案
按热度按时间jq6vz3qz1#
据我所知,Java编译器可能会也可能不会在字节码中包含以下内容:
调用时实际的 javac 参数之间应该有差异。检查Ant的config和 javac 的默认参数值。目标Java平台版本可能也不同,这会导致.class文件大小的差异。
如果使用了多个JDK,当然也意味着不同的类文件大小。
zvms9eto2#
javac默认情况下只在调试信息中生成行号(参见javac -g)。在Eclipse中,编译器类文件生成选项中的所有变量、行和源都是启用的。
2ledvvac3#
没有什么需要“解决”的; Eclipse使用它自己内置的增量编译器,编译器从相同的程序中产生稍微不同的输出是很常见的。
wdebmtf24#
如果您在使用ANT编译的类文件中遇到任何歧义,这是因为ANT的javac在默认情况下将调试模式设置为false。
转折
debug=“true”
在javac的ANT脚本将生成相同的类文件,这是生成与maven或正常javac在cmd。