这里分为具体两种:
第一种:资源文件为一般后缀文件
第二种:资源文件为图片文件
【NO1】第一种
使用这行代码可以获取class类的根目录的路径
String path =Thread.currentThread().getContextClassLoader().getResource("").getPath();
例子:我用的开发软件MyEclipse 6.5
假设项目文件夹如下:
files———bin——core(生成class包)
| | |——Main.class(生成的class文件)
| |
| |——resource( 生成资源文件夹)
| |——a.bat
| |——b.png
|———src——core(源包)
| |—— Main.java(源代码)
|
|——resource(源资源文件夹)
|——a.bat
|——b.png
//源代码Main.java
//============================================================
package core;
import java.io.File;
public class Main {
public static void main(String[] args){
try{
String path = Thread.currentThread().getContextClassLoader().getResource("").getPath(); //添加
File af=new File(path+"/resource");
if(!af.exists()) System.out.println("nullEXIST");;
String[] files =af.list();
if(files.length==0) System.out.println("nullLENGTH");;
for(int i=0;i<files.length;i++){
if(files[i]!=null)System.out.println(files[i]);
else System.out.println("null");
}
}
catch(Exception e){
System.out.println("HugeERROR");
}
}
}
// ===============================================================
运行结果:
a.bat
b.png
就对了
【NO2】第二种
建议使用下面( 2 )方法,因为(1)jar之后可能出现找不到的问题 (之前我试过出现这种情况)
这里代码省了
(1)、你将所有资源打包为epm.jar,你的类位于一个包中:package core;你的图片资源全部放在images文件夹中,而images文件夹也位于core包内。这样的话,最终的路径表现为:
epm———bin——core(生成class包)
| | |——Main.class(生成的class文件)
| |
| |——images( 生成资源文件夹)
| |——system.bat
| |——background.png
|———src——core(源包)
| |—— Main.java(源代码)
|
|——images(源资源文件夹)
|——system.bat
|——background.png
可以通过相对路径来访问:
java.net.URL imUrl = getClass().getResource("images/background.png");
ImageIcon im = new ImageIcon(imUrl);
(2)、另一种情况,如果你的类有很多,并且包的结构很复杂,应该把图片放到最外层,让所有的类通过绝对路径来访问该图片
epm———bin——core(生成class包)
| | |——Main.class(生成的class文件)
| |
| |——images( 生成资源文件夹)
| |——system.bat
| |——background.png
|———src——core(源包)
| |—— Main.java(源代码)
|
|——images(源资源文件夹)
|——system.bat
|——background.png
java.net.URL imUrl = getClass().getResource("/images/background.png");
ImageIcon im = new ImageIcon(imgUrl);
区别非常细微,仅仅是在“images”的前面加了一个反斜杠"/",这个反斜杠就表示根目录,没有反斜杠就表示相对路径。
这些都是细心的问题了......
分享到:
相关推荐
Java读取xls、CSV、xlsx文件所用到的jar包,包括:opencsv-2.3.jar、poi-3.7-20101029.jar、poi-ooxml-3.7-20101029.jar
利用swt中的一个获取图片的类SwingResourceManager 来解决将程序打为使用java打包之后,生成的jar包中图片找不着的。这是因为通过class.getResource()方法在IDEA中运行的路径和生成jar包获取的的路径是不同的。打成...
本资源包换所有读取分析excel的jar包和我写的用这些包读取分析excel文件的两个.java文件。
java代码利用Jsch实现在windows平台获取linux服务器文件,已包含 jsch jar包
主要介绍了springboot项目打成jar包后无法获取static下的静态资源文件的问题分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
通过java的反射技术获取,某个包路径下的类,并以表格形式打印类的属性注解及属性名称等,打印的结果以|分隔,复制到excel表格后,可以设置分列成需要的excel表格
JAVA获取本地视频或者网络URL的时长。附代码和Jar包
近遇到一些Jar包内外配置文件读取的问题。索性自己测试总结一下,与大家分享。 路径文件读取,简单,直接的方式 /** * 从路径读取文件,基本的文件读取方式 * * @author lihzh * @data 2012-4...
jakarta-oro.jar commons-net-1.4.1.jar 博文链接:https://firezhfox.iteye.com/blog/1913128
一个类,用于获取指定路径下文件的各种指纹信息,已经打成jar包,导入后很方便调用,上传以备日后使用。 里面只有5个公共静态方法: public static String getFileMD5(String filename);/*获取指定路径下文件的MD5...
类(包括class文件)可以存储在目录或jar文件中,或者存储在两者的组合中,但是只有在它们位于类路径中的某个地方时,java编译器或解释器才可以找到它们。而类路径对一个javaweb应用而言,就是WEB-INF/classes下和WEB-...
自带jar包,填对xsl文档路径后java文件中的main方法能直接运行
flink安装所需要的第三方jar,即flink-shaded-hadoop-2-uber-2.7.5-10.0.jar
java -jar ApkAnalysis.jar “apk路径” -versionCode 获取apk证书详情: java -jar ApkAnalysis.jar “apk路径” -certs 获取apk证书中的第一条的详情: java -jar ApkAnalysis.jar “apk路径” -certs 0 获取证书...
这里包含了一个FontBox-0.1.0.jar和pdfbox-0.7.3.jar两个jar包,还有一个PdfReader.java文件,很简单,建立一个java工程,把这2个jar包和java类放到工程下面。把main方法里面的pdf文件路径改下,最后右击执行java类...
Sigar 第三方获取服务器cpu,内存,...java 读取系统信息相关jar 包 libsigar-amd64-linux.so libsigar-amd64-solaris.so sigar-amd64-winnt.dll sigar-x86-winnt.dll 解压后路径:hyperic-sigar-1.6.4\sigar-bin\lib
根据文章创建的模版工程文件,下载后可直接编辑main方法,根据自己的需求自定义逻辑内容,编译后获取independent.jar文件,修改配置文件后,通过java -jar independent.jar 执行命令,正常执行。
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax写...
--WisFileRead.transformWisToCsv(String inputFile,... --inputFile --wis文件读取路径 --F:\\yong553-xie14.wis --outPutPath --解析结果输出路径 --F:\\wisout --sourceFolderPath--批量wis文件所在目录--F:\\wis
数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录 一个Java+ajax...