java - Jar 重命名为 .txt:会加载吗?
问题描述
假设我有一个重命名为 .txt 的 jar,类加载器还能从中加载类吗?这个问题与在类路径中保留备份但扩展名为 .txt 的客户有关。会不会有影响?由于它是 prod 服务器,因此需要花费一些时间来删除它并进行测试。
解决方案
如果 txt 文件是类路径的一部分,那么 Java 访问 jar 应该没有问题,但我不推荐它!如果您将 jar 保存为 jar 扩展名或复制到其他目录,那么麻烦会少很多。
因此,如果您的客户使用“.txt”制作了文件的副本,但将原始 jar 保留为原样,则只要类路径未更改,应用程序就可以正常运行。
但是,如果您的客户将 jar 重命名为 txt 并且没有更新类路径以匹配新的奇怪文件名,那么将找不到类 - 如果您的应用程序扫描该目录中的“.jar”文件,它不会像它那样找到相同的问题错过了重命名的罐子。
例如,我javap
在 copy.jar 中的类 copy.Copy 上进行的这个快速测试
> javap --class-path copy.jar copy.Copy
public class copy.Copy {
public static void main(java.lang.String[]) throws java.io.IOException;
}
> mv copy.jar test.txt
> javap --class-path test.txt copy.Copy
public class copy.Copy {
public static void main(java.lang.String[]) throws java.io.IOException;
}
运行也很好:
> java --class-path test.txt copy.Copy
Usage: copy.Copy [-options] {fromdir} {todir}
推荐阅读
- java - 如果我的变量初始化为 0,如何在我的方法中执行循环?
- ios - Xcode Accessibility Inspector 未显示命中区域
- c - 将 memset 与未初始化的变量一起使用
- vue.js - 在 Nuxt/Vue 模板中更改正文样式
- regex - Express Router Regex - 如何在正则表达式中使用点 (.)?
- database-design - 此表关系是否有效/良好做法?
- google-apps-script - 如果两个用户经常同时在同一个单元格上使用附加脚本,我怎样才能防止发生冲突错误?
- python - 模块和 __init__ 的 Tkinter python GUI 问题
- android - Android studio Set notification service to run on the first day of every month
- database - How to handle a multi tenant with database per tenant application where each database has a different schema