当前位置: 首页 > 面试题库 >

升级第三方jar时需要重新编译我的应用程序吗?

公西嘉玉
2023-03-14
问题内容

我有一个使用某些第三方API的Java应用程序。由于存在各种补丁程序,第三方jar文件的更改相当频繁,但是API本身并不经常更改。

每次第三方jar更改时,我都必须重新编译我的应用程序吗?


问题答案:

如果API发生更改,即使您无需在源代码中进行任何更改,也应重新编译。如果API尚未更改,则无需重新编译。

之所以选择“即使您不需要进行任何更改”,是因为某些与源兼容的更改可能与二进制不兼容。例如,假设您当前正在呼叫:

public void foo(String x)

在更高版本中,它更改为:

public void foo(Object x)

显然,您的代码仍然可以编译,但是它解析调用的方法将改变。

当然,这有点极端。基本上,只要您知道API何时更改,就可以了。



 类似资料:
  • 我试图从我的flutter启动第三方应用,但我没有任何进展。在这种情况下,我试图通过单击Flutter中凸起的按钮打开应用程序“Amazon Alexa”。有人能帮我吗? 我试图使用url_launcher,但它无法与第三方应用程序配合使用。

  • 当我将颤振版本升级到1.7.8修补程序时,我收到了几条错误消息。3. 以下是消息: 这是我的颤振医生信息: 医生摘要(要查看所有详细信息,请运行flutter医生-v): [√] Flutter(Channel稳定,v1.7.8热修复补丁.3,在Microsoft Windows上[版本10.0.17134.885 ]) [!] Android工具链-为Android设备开发(AndroidSDK

  • 我已经将jrockit升级到版本28.3.11。在此之后,当在Weblogic管理控制台中选中时,节点变为非活动状态。我重新启动了节点管理器,但它没有解决问题。我得到下面的错误消息在节点管理器日志。 javax.net.ssl.SSLHandshakeExc0019:远程主机在握手期间关闭连接com.sun.net.ssl.internal.ssl.SSLSocketImpl.read记录(SSL

  • 我在Eclipse中有一个spring boot项目。我在项目构建路径中添加了一个外部第三方jar,它不是maven依赖项。现在,我可以从我需要的jar中导入2个类,并编写了一些实现。现在,当我试图用构建maven项目时,我使用的2个导入程序编译失败。错误显示:包不存在。 我在配置部分遗漏了什么吗?我已经在项目构建路径中将jar添加为外部jar。然后我已经清洁编译了项目。在由maven构建的spr

  • 我正在创建一个Spring Boot应用程序,由于业务原因,我需要导入一个第三方jar,该jar还从名为application.properties的文件中读取一些配置参数。 我已经在spring boot application.properties文件中定义了应用程序和第三方jar所需的所有配置。 例外情况:

  • 1. 介绍 nginx是分成一个个模块的,比如core模块,gzip模块(ngx_http_gzip_static_module),proxy模块(ngx_http_proxy_module),每个模块负责不同的功能,例如ngx_http_gzip_static_module负责压缩,ngx_http_proxy_module负责反向代理的请求,除了基本的模块,有些模块可以选择编译或不编译进ngi