- 浏览: 52318 次
- 性别:
- 来自: 杭州
文章分类
最新评论
最近在写一个可运行的jar包,需要从导出后跟jar同级目录读取配置文件(如xml文件)信息,但是不知道怎么定位程序运行时的相对路径,这里做下简单的记录:
第一种方式:使用类路径
如果直接执行.class文件那么会得到当前class的绝对路径;如果封装在jar包里面执行jar包那么会得到当前jar包的绝对路径。
如果路径包含Unicode字符,还需要将路径转码:
第二种方式:使用JVM
第一种方式:使用类路径
String ProjectPath = XXX(this).class.getProtectionDomain().getCodeSource().getLocation().getPath();
如果直接执行.class文件那么会得到当前class的绝对路径;如果封装在jar包里面执行jar包那么会得到当前jar包的绝对路径。
如果路径包含Unicode字符,还需要将路径转码:
path = java.net.URLDecoder.decode(path, "UTF-8");
第二种方式:使用JVM
String path = System.getProperty("java.class.path");
发表评论
-
流未关闭导致调用delete方法删除失败
2017-11-02 20:00 549public static void main(String[ ... -
fastjson空值不处理
2017-09-21 15:21 0fastjson在处理对象转化为json串的时候,对于字段值为 ... -
java位运算
2017-09-19 10:05 493java位运算符 位运算符主要针对二进制,针对的是两个二 ... -
java final作用
2017-09-14 09:12 407final关键字的作用 1、被final修饰的类不可以被继承 ... -
System.getProperty使用
2017-07-23 15:27 823java的System.getProperty()方 ... -
java并发编程中分配线程池数跟CPU密集型任务和I/O密集型任务有关
2017-05-25 20:03 1073CPU密集型任务:应用主要是使用非常多的cup资源,进行无阻塞 ... -
循环遍历集合过程中往集合添加或是删除元素报java.util.ConcurrentModificationException
2017-05-15 19:16 0java.util.ConcurrentModificatio ... -
图片压缩场景选择
2017-04-18 19:00 3951、平台上传图片,但是图片大小不确定(不会超过50M),后台处 ... -
PropertyUtils复制属性报错
2017-05-02 19:46 558java.lang.IllegalArgumentExcept ... -
ThreadLocal实现共享对象
2017-04-16 19:56 452当考虑到每个线程共享多个变量时,需要定义多个ThreadLoc ... -
通过jdk自带的反编译工具命令 javap
2017-04-10 09:39 0通过jdk自带的反编译工具命令 javap 可以查看class ... -
属性命名不遵守javaBean规范导致版本升级后获取不到值
2017-04-01 17:03 447如下所示: struts2 Action中存在如下定义的i ... -
bat批处理命令运行jar包中的main方法
2017-04-01 11:08 1507一、Eclipse导出可运行的 ... -
项目中jdk高版本编译后的代码在低版本的jdk运行报错
2017-03-23 16:10 983项目中jdk高版本编译后的代码运行在低版本的jdk的tomca ... -
java 获取同一个网关下不同客户端的ip失败
2017-03-31 20:11 653java 获取同一个网关下不同客户端的ip,得到的客户端的ip ... -
程序中解析域名报错
2017-03-16 09:00 699项目中通过webservice接口往第三方传送数据,本地配置是 ... -
服务器推送技术简单介绍
2017-03-12 19:01 0传统模式的 Web 系统以 ... -
java中调用语音库
2016-12-25 18:30 675java中调用语音库参考http://blog.csdn.ne ... -
非技术
2015-07-24 15:52 0近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分 ...
相关推荐
在Java编程语言中,获取当前运行程序的路径是一项常见的需求,这主要涉及到系统环境和程序资源的定位。本文将深入探讨如何在Java程序中获取这些信息,并提供多种方法来实现这一目标。 首先,我们可以通过`java.lang...
首先,我们来看“java连接mongodb的jar包”。这个“mongodbjar”通常指的是MongoDB的Java驱动程序的JAR文件,例如`mongodb-driver.jar`、`mongodb-driver-core.jar`和`bson.jar`等。这些JAR文件包含了所有必要的类和...
Java程序的jar(Java Archive)包是Java平台特有的打包机制,它将多个类文件、资源文件和元数据打包成一个单一的可执行文件,便于分发、存储和执行。在Java开发中,jar包扮演着至关重要的角色,因为它使得代码模块化...
如果没有明确指定,JVM会使用默认的类路径,包括当前目录(".")、JRE的lib目录以及任何在`JAVA_HOME/lib/ext`目录下的JAR包。 在描述中提到的博文链接可能提供了更详细的解释,例如如何通过工具查看类的加载来源,...
如果是独立的Java环境,你需要将`android.jar`添加到类路径(classpath)以便访问Android的API。 获取APK版本号主要涉及到`PackageInfo`类,它是Android SDK的一部分,包含有关应用程序包的详细信息,如版本名、...
在Linux环境下,使用Java Swing开发的应用程序通常被打包成可执行的jar文件,便于分发和执行。然而,为了更好地适应Linux系统,尤其是国产化操作系统,开发者可能希望将jar包进一步封装成DEB(Debian Package)...
`URLClassLoader`会读取这个JAR文件,并将其包含的类加载到当前运行的Java虚拟机(JVM)中。 在代码中,首先创建了一个`URL`对象,表示JAR文件的路径。接着,通过`URLClassLoader`的构造函数,传入URL数组来实例化...
使用`URLClassLoader`,我们可以动态地将JAR文件添加到当前的类路径中。示例代码如下: ```java File jarFile = new File("path_to_your_jar.jar"); URL url = jarFile.toURI().toURL(); URL[] urls = new URL...
如果资源文件是在类的同一个包下,我们可以使用`MyClass.class.getPackage().getName().replace(".", "/")`来获取当前类所在的包路径,然后结合`getResource`得到的URL,可以构造出相对路径。 5. 注意事项 - 在...
这两种方法用于获取类路径下的资源文件路径,特别适用于JAR包或类加载器管理的资源。 ##### 示例代码: ```java URL xmlPath = this.getClass().getClassLoader().getResource("selected.txt"); System.out.println...
在软件开发过程中,经常需要将多个JAR包合并成一个JAR包,以方便管理和部署。本文将详细介绍如何实现这一过程,并提供具体的操作步骤和技术细节。 ### 一、概述 在Java开发中,项目通常会依赖多个外部库或模块,...
描述中的"导入lib即可用"提示我们,为了在Java项目中使用Java POI功能,只需将下载的jar包添加到项目的类路径(classpath)中。这可以通过多种方式完成,比如在Eclipse或IntelliJ IDEA等IDE中,可以将jar包添加到...
### JAVA将Class文件打包为JAR文件的详细步骤与注意事项 #### 标题与描述概述 在Java开发中,将多个Class文件打包成一个JAR(Java Archive)文件是一种常见的做法,这有助于简化项目的部署过程并提高代码的可管理性...
在上述问题中,开发者使用了以下代码来获取当前类的资源路径: ```java String path = this.getClass().getClassLoader().getResource("/").getPath().substring(1); ``` 这段代码首先通过`getClass()....
Java分页jar包`pager.jar`是一个专门为Java Web应用程序提供分页功能的工具包,它极大地简化了在JSP页面中实现数据分页的过程。在Web开发中,尤其是在处理大量数据时,分页是一个必不可少的功能,它使得用户可以逐页...
在传统的Java开发中,这通常意味着将jar包添加到项目的类路径中。在现代的开发环境中,如Maven或Gradle,可以通过在构建配置文件中声明依赖来自动管理这个jar。 例如,在Maven的`pom.xml`文件中,你可以添加以下...
### Java打jar包方法 #### 目标 本教程的目标是将位于`D:\myfile`目录下的所有文件及其子目录打包到名为`license.jar`的JAR文件中。 #### 步骤详解 ##### 第一步:切换到指定目录 首先,打开命令提示符(CMD)。...
7. **使用jar包**:生成的jar包可以被其他Java项目引用,只需将它添加到项目的类路径中。你可以使用`<dependency>`标签(Maven)或`implementation`(Gradle)来引入这个jar。 通过以上步骤,你成功地将protobuf...
javacv-***.jar中文文档.zip,java,javacv-***.jar,org.bytedeco,javacv,***,cl.eye,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,bytedeco,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法:...
- **类路径(Classpath)**:JVM寻找类文件的路径,包括当前目录(".")、系统类路径(CLASSPATH环境变量或-Dclasspath选项)和JAR包路径。 - **依赖管理**:在大型项目中,JAR包之间可能存在依赖关系。Maven和...