- 浏览: 78026 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
skying007:
,very good example. thank you ...
JMS WITH WEBSPHERE -
ycljf86:
magicalboy 写道 我想搞个Flex桌面录像程序,一定 ...
Flash Media Server 概念 -
ycljf86:
不好意思,最近忙,好久没来博客了,用免费的red5也可以的。
Flash Media Server 概念 -
magicalboy:
我想搞个Flex桌面录像程序,一定要用到FMS?
Flash Media Server 概念
这里分为具体两种:
第一种:资源文件为一般后缀文件
第二种:资源文件为图片文件
【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或者JAR包获取读取资源文件的路径
第一种:资源文件为一般后缀文件
第二种:资源文件为图片文件
【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或者JAR包获取读取资源文件的路径
发表评论
-
hadoop keng
2016-07-28 16:12 0job is running but hang, it jus ... -
百度反向解析地址
2016-07-26 10:40 453import java.io.BufferedRead ... -
hadoop 学习路线
2016-07-12 20:09 445hadoop的绝好文章 Hadoop新手学习指导 介绍概念, ... -
spring with ejb3
2011-04-14 15:53 675由于项目需要 EJB3获取spring的上下文然后访问其中定义 ... -
websphere portlet
2010-12-22 22:22 729开发环境: websphere application ser ... -
EJB3 Local 接口调用
2010-12-22 22:14 1205EJB3中 在同一个ear中,war中的web模块要想调用ea ... -
log4j 数据库 flushbuffer
2010-10-28 14:30 901在log4j中,可以用JDBCAppend ... -
loj4j
2010-08-08 11:30 789今天遇到个郁闷的问题。。我的项目中有错。classpath的一 ... -
事务 与 session
2010-08-07 10:38 792spring中 事务与session何时关没有关系,你可以利用 ... -
理解抽象类和接口最好的例子
2010-08-07 10:09 984抽象类(abstract class):家用电器(HomeAl ... -
jar 资源文件
2010-07-26 22:19 1051今天在做加密器的时候。遇到了读取文件的问题。在jar包的同目录 ... -
双操作
2010-07-22 21:13 706A系统是演唱会订票系统,B系统是付款系统,负责处理A系统和银行 ... -
activeMQ 与 quartz 事例
2010-06-28 15:33 1451利用spring与activeMQ 与 quartz 结合 j ... -
ant 文件
2010-06-25 15:36 577<?xml version="1.0&qu ... -
热替换
2010-06-24 09:58 782当我们在myeclipse中启动服务器后,我们改的代码能替换到 ... -
websphere
2010-06-23 09:03 878在websphere中的应用程序服务器中的进程定义,在里面的J ... -
client.jar
2010-06-22 21:03 772记得以前有所测程序时,都要加上服务器的jar包,如jbossc ... -
response request
2010-06-22 20:52 863response.getoutstreame().其实我们页面 ... -
jdk 更新
2010-01-26 22:46 1129今天我装了个jdk1.6,以前我的是1.5的。后来发现在cmd ... -
ejb3 jpa初探
2010-01-26 14:58 1714通过查询和插入来显示e ...
相关推荐
在Java编程中,有时我们需要从已经打包的JAR文件中读取特定的资源文件,例如配置文件、图片或库。本篇文章将详细讲解如何在Java中实现从JAR包中读取指定文件的方法。 首先,Java提供了`java.util.jar`包,其中包含...
本资源包聚焦于这个主题,包含了一系列jar包以及两个.java示例文件,帮助我们深入理解如何在Java环境中读取和解析Excel内容。 首先,让我们了解一下核心的jar包。这些jar包通常包含了用于操作Excel文件的API,例如...
在Java编程中,读取jar包内的文件是一个常见的需求,特别是在运行时动态加载资源或类文件时。Java提供了一种内置的方式,通过`java.util.jar`包中的`JarFile`和`JarInputStream`类来实现这个功能。下面将详细介绍...
这是因为通过class.getResource()方法在IDEA中运行的路径和生成jar包获取的的路径是不同的。打成jar包后,获取图片的路径中有"xxx.jar!"这里面的内容是不能够被操作系统识别出来的,因此直接通过路径来获取文件是不...
在Java开发中,有时我们需要在运行时访问或者操作WAR(Web Application Archive)包或JAR(Java Archive)包内的文件。这些文件可能包括配置文件、静态资源、类文件等。标题"读取war包或jar包内的文件"涉及到的知识...
本文将详细介绍如何在Eclipse中将项目打包成JAR文件,并确保能正确引用外部JAR包和读取外部配置文件。 首先,我们来看如何打包项目为JAR。在Eclipse中,选择`Export` -> `Java` -> `Runnable JAR file`。在弹出的...
1. 获取jar文件路径:可以通过System.getProperty("java.class.path")获取当前项目的classpath,然后split以分隔jar文件路径。 2. 读取jar文件:使用java.util.jar.JarFile和java.util.jar.JarEntry读取jar文件中的...
在Java编程中,有时我们需要在运行时从JAR(Java Archive)包中读取文件,例如类、配置或资源文件。这个任务对于那些希望在不将文件解压到硬盘上的情况下使用它们的开发者来说是非常重要的。本文将详细介绍如何在...
Java通用jar包是一种在Java开发中广泛使用的可重用代码库,它包含了预编译的类和资源,便于开发者在自己的项目中导入和使用。jar(Java Archive)是Java平台的标准打包格式,允许将多个Java类文件和其他资源文件集合...
"Java获取视频时间JAR包"正是为了解决这个问题而设计的,它提供了一个Java库,允许开发者通过简单的API调用来获取视频文件的时长。下面将详细介绍这个JAR包的用途、工作原理以及如何在Java项目中使用它。 首先,让...
这个"java-http请求jar包"实际上就是Apache HttpClient的4.5.5版本,一个包含了所有必要组件的压缩文件。 Apache HttpClient库提供了对HTTP协议的全面支持,包括GET、POST、PUT等各种HTTP方法,以及Cookie管理、...
标题“EXCELJAVA读取JAR包”涉及的是Java编程中的一个特定应用场景,即使用Java来读取Excel文件,而这个过程可能涉及到从一个JAR文件中操作数据。描述中提到,开发者创建了一个Java项目,引入了Apache POI库(通过...
例如,通过`this.getClass().getResource()`方法可以获取资源文件的路径。 ##### 示例代码: ```java File f = new File(this.getClass().getResource("/").getPath()); System.out.println(f.getAbsolutePath()); ...
Java开发过程中,jar(Java Archive)包是必不可少的组件,它们包含了预编译的类、资源文件以及元数据,使得开发者能够将多个类文件整合到一个单一的可部署单元中。以下是对标题和描述中涉及的几个关键jar包及其功能...
在Java中实现Oracle数据库连接,我们需要用到特定的JAR包,这些JAR包通常包含在Oracle的数据库客户端或者Oracle JDBC驱动程序中。 首先,Oracle JDBC驱动分为两种类型: Thin驱动和 Thick驱动。Thin驱动是一种纯...
标题"Java读取DBF文件jar包和测试用例"表明我们要讨论的是一个Java库,它专门用于读取DBF文件,并且已经包含了测试代码来验证其功能。这个jar包名为"javadbf-0.4.0.jar",这可能是一个第三方库,它提供了Java API来...
你需要创建一个`JarFile`对象,指定JAR文件的路径,然后通过调用`getEntries()`方法获取所有条目,或者通过`getEntry(String name)`获取特定条目。 2. **读取JAR内的资源文件**: - `JarInputStream`:如果你知道...
Java FTP上传JAR包是一项常见的任务,特别是在自动化部署或者远程更新系统组件时。在这个过程中,我们需要使用Java编程语言,结合FTP(File Transfer Protocol)协议来实现在服务器上上传JAR文件。以下是一些相关的...
在这个场景中,我们有一个名为“java读取ini文件jar”的压缩包,它包含了一个示例,帮助开发者了解如何在Java中读取Ini文件。 首先,我们需要引入能够处理Ini文件的第三方库。一个常用的库是Apache Commons ...