URL中有openConnection方法,会返回一个URLConnection类型的对象,通过这个对象可以读取资源的内容非常方便
URLConnection的具体类型是根据URL中的协议的不同而不同,协议包括http、ftp、file、jar等。
jar协议实例为:jar:file:/d:/test/packApp.war!/
此时返回的connection类型为:sun.net.www.protocol.jar.JarURLConnection
遗憾的是URLConnection中没有提供关闭连接的方法,导致打开的资源无法手工关闭,这样当取出完jar包内容后,无法从程序中删除jar包文件。最近因为这个事情很郁闷,在查看了很多代码后,终于找到了关闭jar协议的方法:
import java.io.File;
import java.net.JarURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.jar.JarFile;
public class TestUrl {
public static void main(String[] args) throws Exception{
String str = "d:/test/packApp.war";
URL url = new File(str).toURI().toURL();
String jarStr = "jar:" + url.toExternalForm() + "!/";
URL jarUrl = new URL(jarStr);
URLConnection urlCon = jarUrl.openConnection();
// urlCon在调用connect方法后将打开对应的jar文件
// 此后就不能在文件系统中手工删除jar包了
urlCon.connect();
System.out.println(jarUrl.toString());
System.out.println(urlCon.getClass().getName());
// 要关闭对应的jar包文件,需要获得JarFile对象
// 然后调用close方法
JarFile jarFile = ((JarURLConnection)urlCon).getJarFile();
jarFile.close();
System.out.println("after release jar file");
}
}
分享到:
相关推荐
标题中的“修改url的jar包”指的是一个Java的开源库,通常用于URL重写功能,以便在不改变实际页面地址的情况下,对用户显示一个更友好的或者更安全的URL。这种技术在SEO(搜索引擎优化)和网站安全性方面都有重要的...
jar包 jar包jar包 jar包jar包jar包jar包jar包jar包jar包 jar包jar包 jar包jar包jar包jar包jar包jar包jar包 jar包jar包 jar包jar包jar包jar包jar包jar包
所有jar包集全,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR包,JAR...
UrlBase64 jar包 bcprov-jdk15-136.jar
这个过程可以通过调用特定的库来实现,而"Java后台打开浏览器所用到的jar包"就是这样一个工具。这个jar包包含了必要的功能,可以让Java应用程序在后台启动用户的默认浏览器来显示指定的URL。 在Java中,没有内置的...
在IT行业中,jar(Java Archive)包是一种常用的文件格式,用于集合Java类文件、相关的元数据和资源文件,便于分发和执行。当你需要查看jar包内的源代码,特别是没有提供源码的情况下,就需要借助“jar包反编译工具...
标题中的“jd_gui工具直接打开jar文件,显示源代码”是指使用JD-GUI这款软件来查看Java可执行jar包中的源代码。JD-GUI是一款独立的图形化工具,它允许开发者查看Java字节码反编译后的源代码,这对于调试、学习或者...
总结来说,这些脚本使得管理基于Spring Boot的jar包应用变得更加便捷,无论是启动还是关闭,都能在Windows和Linux上进行,并且可以灵活地配置端口、外部配置文件等参数。在实际操作中,还需要注意确保安全性,比如...
SAX的jar包 SAX的jar包SAX的jar包 SAX的jar包 SAX的jar包
j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar架包j2ee.jar...
数据库驱动jar包是Java编程中连接不同数据库管理系统(如MySQL、Oracle、SQL Server)的关键组件。这些jar包包含了Java Database Connectivity (JDBC) API的实现,使得Java应用程序能够与各种数据库进行交互,执行...
以下是一份详细的手工JAR打包指南,包括如何编译Java源文件,创建配置文件,以及如何制作可执行的JAR文件。 首先,我们来了解如何将Java源文件(.java)编译成字节码文件(.class)。假设你有一组Java源文件,你...
Eclipse怎么打jar包(可运行的jar包) 教你一步一步,学会怎么打jar包,内含详细图文教程。
java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java3d开发jar包java...
5. 最后,记得关闭打开的资源,如`ResultSet`、`Statement`和`Connection`,以防止资源泄露: ```java rs.close(); stmt.close(); conn.close(); ``` 6. 还有一些高级特性,如事务管理、批处理、预编译的SQL...
达梦数据库JAR包是专门为Java开发者设计的,用于在Java应用程序中与达梦数据库进行交互的工具包。达梦数据库是中国自主研发的一款高性能、高可用性的关系型数据库管理系统,广泛应用于政府、金融、电信等关键领域,...
"使用说明- jar包.txt"文件很可能是该WebSocket库的使用指南,其中会详细描述如何将这个jar包引入到Java项目中,包括添加依赖、初始化配置、创建WebSocket连接、发送和接收消息等步骤。通常,这样的说明文件会包含...
MySQL驱动jar包是Java开发者用来连接Java应用程序和MySQL数据库的关键组件。这个压缩包包含了不同版本的MySQL Connector/J,它是MySQL官方提供的Java数据库连接器。 1. **MySQL Connector/J**: MySQL Connector/J...
重新打包(重命名)的工具,在jar包重复的情况下使用。 这里我们以 gson.jar 为例,在 gson.jar 包目录下新建一个文本文件,名字随意,例如 rule.txt,写入下面的内容。 rule com.google.gson.** ...
"eclipse快捷打开文件夹jar包"这个标题暗示了如何在Eclipse中快速定位并访问这些JAR文件所在的文件夹。 在Eclipse中,右键点击项目中的JAR文件或任何其他文件,选择"Open With" -> "Resource Viewer",可以查看该...