spring boot jar包启动,JNI相对路径加载dll方案一,java面试官常问的问题答案

文章讲述了如何在Java工程中正确处理dll文件的复制问题,以替代loadLibrary方法,并分享了Java开发者的学习资源和面试建议,包括最新面试题库覆盖MySQL、Spring、Redis、JVM等技术。
摘要由CSDN通过智能技术生成
  • @author tarzan LIU

  • @date 2020/10/22

*/

private void copyDir(String javaUrl) throws IOException {

URL url = JNIMapUtil.class.getClassLoader().getResource(“dll/”);

String jarPath = url.toString().substring(0, url.toString().indexOf(“!/”) + 2);

URL jarURL = new URL(jarPath);

JarURLConnection jarCon = (JarURLConnection) jarURL.openConnection();

JarFile jarFile = jarCon.getJarFile();

Enumeration jarEntrys = jarFile.entries();

while (jarEntrys.hasMoreElements()) {

JarEntry entry = jarEntrys.nextElement();

String name = entry.getName();

if (name.contains(“dll/”) && !entry.isDirectory()) {

String[] strs = name.split(“/”);

copyFile(strs[strs.length - 1], javaUrl);

log.info(“file name is :” + strs[strs.length - 1] + " finish copy!!");

}

}

}

/**

  • 复制一份dll放到系统临时文件夹中,处理jar包,dll无法读取问题(代替loadLibrary)

  • @author tarzan LIU

  • @date 2020/10/16

*/

private synchronized static void copyFile(String libName, String javaUrl) throws IOException {

InputStream in = null;

FileOutputStream writer = null;

File make = new File(javaUrl);

if (!make.exists() && !make.isDirectory()) {

make.mkdirs();

}

File extractedLibFile = new File(javaUrl + File.separator + libName);

try {

String dllUrlInJar = “/dll/”;

in = JNIMapUtil.class.getResourceAsStream(dllUrlInJar + libName);

if (in == null)

in = JNIMapUtil.class.getResourceAsStream(libName);

JNIMapUtil.class.getResource(libName);

BufferedInputStream reader = new BufferedInputStream(in);

writer = new FileOutputStream(extractedLibFile);

byte[] buffer = new byte[1024];

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

总结

面试建议是,一定要自信,敢于表达,面试的时候我们对知识的掌握有时候很难面面俱到,把自己的思路说出来,而不是直接告诉面试官自己不懂,这也是可以加分的。

以上就是蚂蚁技术四面和HR面试题目,以下最新总结的最全,范围包含最全MySQL、Spring、Redis、JVM等最全面试题和答案,仅用于参考

一份还热乎的蚂蚁金服面经(已拿Offer)面试流程4轮技术面+1轮HR

四面和HR面试题目,以下最新总结的最全,范围包含最全MySQL、Spring、Redis、JVM等最全面试题和答案,仅用于参考

[外链图片转存中…(img-SIuTBeID-1711081223214)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值