取 java 程序运行的路径_获取Java程序运行的路径 | 获取当前jar包的路径
经过试验,不管是否是Jar包,不管是否是Tomcat部署,以下三个方法均可实现。
package test;
public class MyPath {
public static String getProjectPath() {
java.net.URL url = MyPath.class.getProtectionDomain().getCodeSource().getLocation();
String filePath = null;
try {
filePath = java.net.URLDecoder.decode(url.getPath(), "utf-8");
} catch (Exception e) {
e.printStackTrace();
}
if (filePath.endsWith(".jar"))
filePath = filePath.substring(0, filePath.lastIndexOf("/") + 1);
java.io.File file = new java.io.File(filePath);
filePath = file.getAbsolutePath();
return filePath;
}
public static String getRealPath() {
String realPath = MyPath.class.getClassLoader().getResource("").getFile();
java.io.File file = new java.io.File(realPath);
realPath = file.getAbsolutePath();
try {
realPath = java.net.URLDecoder.decode(realPath, "utf-8");
} catch (Exception e) {
e.printStackTrace();
}
return realPath;
}
public static String getAppPath(Class> cls){
//检查用户传入的参数是否为空
if(cls==null)
throw new java.lang.IllegalArgumentException("参数不能为空!");
ClassLoader loader=cls.getClassLoader();
//获得类的全名,包括包名
String clsName=cls.getName();
//此处简单判定是否是Java基础类库,防止用户传入JDK内置的类库
if(clsName.startsWith("java.")||clsName.startsWith("javax.")) {
throw new java.lang.IllegalArgumentException("不要传送系统类!");
}
//将类的class文件全名改为路径形式
String clsPath= clsName.replace(".", "/")+".class";
//调用ClassLoader的getResource方法,传入包含路径信息的类文件名
java.net.URL url =loader.getResource(clsPath);
//从URL对象中获取路径信息
String realPath=url.getPath();
//去掉路径信息中的协议名"file:"
int pos=realPath.indexOf("file:");
if(pos>-1) {
realPath=realPath.substring(pos+5);
}
//去掉路径信息最后包含类文件信息的部分,得到类所在的路径
pos=realPath.indexOf(clsPath);
realPath=realPath.substring(0,pos-1);
//如果类文件被打包到JAR等文件中时,去掉对应的JAR等打包文件名
if(realPath.endsWith("!")) {
realPath=realPath.substring(0,realPath.lastIndexOf("/"));
}
java.io.File file = new java.io.File(realPath);
realPath = file.getAbsolutePath();
try{
realPath=java.net.URLDecoder.decode(realPath,"utf-8");
}catch(Exception e){
throw new RuntimeException(e);
}
return realPath;
}//getAppPath定义结束
}
使用Jar包,在Tomcat的运行结果如下:
ProjectPath: D:\J2EE\Tomcat 6.0\webapps\MyService1WebP\WEB-INF\lib
RealPath: D:\J2EE\Tomcat 6.0\webapps\MyService1WebP\WEB-INF\classes
Apppath: D:\J2EE\Tomcat 6.0\webapps\MyService1WebP\WEB-INF\classes
取 java 程序运行的路径_获取Java程序运行的路径 | 获取当前jar包的路径相关推荐
- JAVA获取程序/jar包所在路径
public class path{public static void main(String []args){//输出本程序/jar包所在路径System.out.println(System.g ...
- 微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-翟东平-专题视频课程...
微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-2445人已学习 课程介绍 微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识. 微信小 ...
- 视频教程-微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统-微信开发
微信小程序系统教程Java版[3/3阶段]_微信小程序电商系统 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试 ...
- java jar包的路径
用java些的脚本,然后打成jar包运行,jar包里的程序需要读配置文件的一些参数,所以需要确定读配置文件的路径.一般配置文件和jar包放置在同一目录下,这个时候就需要jar包里的代码,取到jar包存 ...
- 【源码+图片素材】Java王者荣耀游戏开发_开发Java游戏项目【王者荣耀】1天搞定!!!腾讯游戏_Java课程设计_Java实战项目_Java初级项目
王者荣耀是当下热门手游之一,小伙伴们是否想过如何制作一款属于自己的王者荣耀游戏呢? 本课程讲解了一个王者荣耀游戏的详细编写流程,即使你是刚入门Java的新手,只要你简单掌握了该游戏所需要的JavaSE ...
- 获得jar包存放路径的方法
获得jar包存放路径的方法 Posted by zeal on 2006-07-11 09:45 , 1371 characters | + 0 - 0 English 转载请保留本行原始出处声 ...
- java jar包存放位置_获得运行jar包存放路径的方法
在 java 中, System.getProperty("user.dir") 得到的是当前工作路径(对应命令行命令就是 linux 下的 pwd . windows 下的 cd ...
- java程序运行5步骤_浅析Java程序的执行过程
一 .jdk内容概述 当安装好jdk后(本示例jdk版本为11.0.1,不同版本,目录有细微差别,但bin目录包含的exe是一样的),打开bin目录,有两个重要的exe文件:javac.exe(编译器 ...
- java获取项目中的路径_通过java获取当前项目路径
展开全部 getClass().getResource() 方法获得相对e5a48de588b63231313335323631343130323136353331333332643932路径( 此方 ...
最新文章
- Python培训分享:PyQT是什么?PyQt4和PyQt5的区别是什么?
- 企业数字化转型,AI平台能力建设是关键
- matlab消去前一个图,各位matlab高手,如何从2个3元方程中消去一个变量,然后做3维图形~...
- Hibernate, 想说爱你不容易
- iOS Hacker Keychain相关The executable was signed with invalid entitlements
- linux区分个系统脚本
- JavaScript 图片上传预览效果
- uni map 实时记录轨迹_北斗GPS汽车行车记录仪,部标808商用轿车专用
- 文件上传表单 上传文件的细节 文件上传下载和数据库结合
- 红芯事件追踪:官方致歉承认基于开源架构;创始人履历被指夸大
- Android中如何提取和生成mp4文件
- 20155207第十章课下测试补交
- 深度学习将灰度图着色_使用DeOldify着色和还原灰度图像和视频
- python绝对值_如何在Python中获得数字的绝对值?
- 计算机英语摘要,跪求计算机论文摘要英文翻译
- UART(Universal Asynchronous Receiver/Transmitter)
- 求解答!iframe在IE浏览器加载页面无反应问题
- 让我带你弄明白什么是RPC ,帮你整理一下你的小脑瓜!
- png图片合成gif动态图-python3
- 互联网大公司与创业公司
热门文章
- 学习minix 3(未完成)
- yum 安装 Mysql 5.7,忘记密码解决方案
- Oracle异常汇总
- angular--解决angular图片加载失败问题
- 【报告分享】2021年Z世代“潮力量”洞察报告.pdf(附下载链接)
- 【报告分享】基础设施的新兴趋势-毕马威.pdf(附pdf下载链接)
- original_keras_version = f.attrs[‘keras_version‘].decode(‘utf8‘)AttributeError: ‘str‘ object has no
- 2015-2020年各类国际会议与期刊基于图像的三维对象重建论文综述(8)——Comparison
- 剑指offer 面试题58 - II. 左旋转字符串
- Java在程序设计题目中的妙用