如何判断java程序是从class启动还是从jar启动的?
2013-04-27 09:49
393 查看
工作时,用eclipse写java程序,然后打成jar包部署。在调试单个class时,程序是从.class文件启动的;部署之后,程序是从jar包启动的。在这两种场景下,获取程序运行的一些配置文件的方式是不同的。从.class文件启动时,可以直接通过FileInputStream来读取配置文件;而在jar包中,需要getResourceAsStream来打开配置文件。为了保持调试和部署的代码一致,我需要知道一个java程序到底是从.class文件还是从jar包启动的。
从stackoverflow上找到了答案:
http://stackoverflow.com/questions/482560/can-you-tell-on-runtime-if-youre-running-java-from-within-a-jar
要点是用Class.getResource方法来获取该类文件的位置:
如果是.class文件启动:
如果是从jar包启动:
从stackoverflow上找到了答案:
http://stackoverflow.com/questions/482560/can-you-tell-on-runtime-if-youre-running-java-from-within-a-jar
要点是用Class.getResource方法来获取该类文件的位置:
public class Foo { public static void main(String[] args) { System.out.println(Foo.class.getResource("Foo.class")); } }
如果是.class文件启动:
file:/C:/Users/Jon/Test/com/whatever/Foo.class
如果是从jar包启动:
jar:file:/C:/Users/Jon/Test/foo.jar!/com/whatever/Foo.class
相关文章推荐
- 【笔记】Java如何判断是IDE启动还是jar启动
- Symbian程序如何安装jar,并启动java程序参考资料
- eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN
- Symbian程序如何下载安装jar,并启动java程序实践总结
- java判断当前是在class文件中运行还是在jar中运行
- Java程序如何生成Jar 执行文件(1)
- 如何判断一段程序是由C 编译程序还是由C++编译程序编译的?
- eclipse通过maven建立java se工程配置log4j,打包成zip,将jar包和配置文件分开,并以bat和sh文件启动java程序
- Java程序如何生成Jar、exe及安装文件
- 如何判断程序是x86还是x64类型
- 如何判断程序是由C编译程序编译的,还是由C++编译程序编译的.
- 如何判断一段程序是由C 编译程序还是由C++编译程序编译的?
- android工程中引入第三方JAR包后安装APK时老是提示找不到库文件 || Android如何将程序打成jar包 || 运行java.lang.noclassdeffounderror错误
- Java程序如何生成Jar、exe及安装文件
- JAVA程序如何在win7系统中开机启动详解
- 如何在java程序中使用Xquery----datadirectxquery.jar
- 如何让Java程序脱离Eclipse运行(导出生成jar包)
- Java程序,判断一个字母是元音还是辅音
- 原创:如何黑箱判断黑莓Java程序走的是什么网络通道?DirectTCP, WAP, WAP2, BES, BIS
- Java程序如何生成Jar、exe及安装文件