gpt4 book ai didi

java - 装 jar 顺序

转载 作者:可可西里 更新时间:2023-11-01 16:47:27 27 4
gpt4 key购买 nike

假设类路径上有两个不同库版本的 jar,例如

java -cp A-2.1.jar:A-2.2.jar ...

第一个和第二个jar中的包名和类名相同,但类实现不同。是否指定root jvm classloader是否会在A-2.2之前尝试在A-2.1中寻找类?

问题是 AWS EMR 将 hadoop jar 添加到类路径中,并且它的一些依赖项是旧版本的。但是,我们的应用程序需要使用相同库的新版本,因此在类路径前加上更新版本的库是否足够,或者在这种情况下是否推荐使用阴影? http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-hadoop-config_hadoop-user-env.sh.html

最佳答案

来自Setting the Class Path文档:

The order in which you specify multiple class path entries is important. The Java interpreter will look for classes in the directories in the order they appear in the class path variable.

也就是说,覆盖另一个库的依赖 JAR 总是有风险的,因为库提供者可能没有测试过该组合,因此您需要向他们寻求保证,进行自己的测试,或者遮蔽/重新打包按照您的建议上课。

关于java - 装 jar 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35952801/

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