java 判断当前运行类是否在jar 中运行

有时候我们需要对某个包中的所有类进行扫描,我在测试环境中写好代码。打包在生产环境中运行就报错。大写的尴尬呀!

发现是因为打包后class 存在jar 中。对应的路径关系不正确。所有我们需要对当前类进行判断在何种情况下运行

 URL url = BaseApplication.class.getResource("");
 String protocol = url.getProtocol();

然后我们判断protocol

if("jar".equals(protocol)){
    // jar 中
}else if("file".equals(protocol)){
    // 非jar 中 (文件class 中)
}

url.getProtocol() 为获取对应URL 中的协议 关于协议可以百度了解一些

时间: 2024-09-24 11:19:44

java 判断当前运行类是否在jar 中运行的相关文章

web项目在eclipse中运行正常 部署到tomcat中运行报spring context错误

问题描述 web项目在eclipse中运行正常 部署到tomcat中运行报spring context错误 20C 解决方案 quatrz配置有问题参考:http://blog.csdn.net/kingzuo/article/details/12572881http://www.cnblogs.com/kay/archive/2007/11/02/947372.html

java 打包成jar后无法运行(在eclipse下可以运行)???

问题描述 打包成jar后无法运行(在eclipse下可以运行)用java-jarxxx.jar命令可以运行!就是双击无法运行!以前可以双击运行重装JDK,后就无法双击运行了,但在eclipse下运行完全正常.请各位指点迷津!!! 解决方案 解决方案二:默认用Java-jar运行解决方案三:是这样的jar是不可以运行的,我们感觉它可以直接运行其实是可以用java打开,就像图片.视频可以双击打开一样.你重装java之后java.exe找不到了,所以就打不开了,你需要把%JAVA_HOME%bin加到

Java ClassLoader基础及加载不同依赖 Jar 中的公共类

本文主要介绍 ClassLoader 的基础知识,ClassLoader 如何动态加载 Jar,ClassLoader 隔离问题及如何加载不同 Jar 中的公共类. 本文工程开源地址见:Java Dynamic Load Jar@Github,Clone 以后直接以 Java Application去运行 java-dynamic-loader-host 工程即可. 其实本文只是 Android 插件化的一个引子,做过 Android 插件化的同学,可以试试对于 Android Support

java-eclipse 下用fat jar插件打包swing生成的jar文件运行提示找不到主类

问题描述 eclipse 下用fat jar插件打包swing生成的jar文件运行提示找不到主类 我用java swing写了一个窗体应用程序,用到了mysql数据库,并且将mysql的jdbc驱动包放在了项目的lib文件夹写,在我将程序用fat jar插件打包后,在命令行下面利用:java -jar +目录test.jar ,运行正常,而当我直接双击运行生成的jar文件后就提示:Could not find the main class...Program will exit. 请问怎么解决这

在eclipse中运行正常,生成可运行jar包,双击运行不正常 用java -jar运行正常

问题描述 rt,谢谢啊!在eclipse中运行正常,生成可运行jar包,双击运行不正常用java-jar运行正常 解决方案 解决方案二:步骤一:打开注册表,开始->运行(或者用快捷键WIN+R),输入regedit,确定:步骤二:找到HKEY_CLASSES_ROOTApplicationsjavaw.exe,一开始没有的话,就在资源管理器中找到javaw.exe文件,如我的电脑中为D:ProgramFilesJavajrebinjavaw.exe,运行下,或找个Jar文件,选择打开方式,输入D

java导出可执行jar包后,工程中使用的图片找不到路径,但是在myeclipse中运行没错

问题描述 我在一个jpanel中放置一张图片,但是导出为可执行的jar包后,这张图片找不到了,提示不能加载此图片,程序中使用的是Classloader.getSystemResource("工程下的图片"),java导出可执行jar包后,工程中使用的图片找不到路径,但是在myeclipse中运行没错,请问各位大哥,怎么实现呢? 解决方案 我测试了一下,我把图标放在类的同目录下,通过Class.getResource返回的地址来构造File对象,获取不到图片:而直接通过Class.get

最经典的Java类打包成JAR文件

ava打包JAR文件   使用的工具及环境: MyEclipse 7.5 Java Enterprise.JDK1.6.0   打包JAR文件:           首先,创建一个Java的项目,点击菜单栏File --> New --> Java Project  -->   Web Project Details --->  Project Name 填写好项目名称后(如:MyJaPro),点击Finish按钮(其他都是默认).           第二步,鼠标右击,刚才创建项

使用osgi api启动osgi时,用java -jar命令运行报异常,用eclipse运行正常

问题描述 使用osgi api启动osgi时,用java -jar命令运行报异常,用eclipse运行正常 我使用osgi的api写了osgi框架的启动程序,然后使用java -jar 命令运行这个jar包报空指针异常,我在eclipse中运行一切正常,请问这是为什么呀

android 如何使用imageIO类呢 引用jar包编译没错 运行就报错了 说找不到

问题描述 android 如何使用imageIO类呢 引用jar包编译没错 运行就报错了 说找不到 部分代码 public static String getImagePixel(Bitmap bt) { setBitmap(bt); int R=0; int G=0; int B=0; List list=new ArrayList(); File files = new File("/mnt/sdcard/inncloudimage/req_images/Image.jpg");