`

JAVA 资源定位

阅读更多
1.URI URL URN 3个关系
URI unform resource Identifier 统一资源标识符
URL unform resource Locator  统一资源定位符  可以定位 就可以找到这个物件
你可以试下在本地打开网页 看下地址栏 就明白了
URN unform resource Name 统一资源命
URI 是统一资源标识符,而 URL 是统一资源定位符。因此,笼统地说,每个 URL 都是 URI,但不一定每个 URI 都是 URL。这是因为 URI 还包括一个子类,即统一资源名称 (URN),它命名资源但不指定如何定位资源
2.JAVA拿路径

File API 说明
无论是抽象路径名还是路径名字符串,都可以是绝对 路径名或相对 路径名。绝对路径名是完整的路径名,不需要任何其他信息就可以定位它所表示的文件。相反,相对路径名必须使用取自其他路径名的信息进行解释。默认情况下,java.io 包中的类总是根据当前用户目录来解析相对路径名。此目录由系统属性 user.dir 指定,通常是 Java 虚拟机的调用目录
TOMCAT下 user.dir 就是Tomcat\bin 目录
而且在不同环境下user.dir 值就不一样 所以用这个来定位资源 是很危险的

最佳方式就是用拿类的绝对路径,然后在相对路径拿你需要文件路径

package myd.utils;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import org.junit.*;

public class DataSoruce {
	
	@Test
	public void myTest()
	{
		Properties properties = new Properties();
		  InputStream in;
		try {
//			System.out.println(this.getClass().getResource(""));//相对路径
			System.out.println(this.getClass().getResource("/"));//绝对路径
			//in = new BufferedInputStream (new FileInputStream("WebRoot/WEB-INF/classes/test2.properties"));
			/*
			 * n = getClass().getResourceAsStream("/test2.properties") 
			 * 和下面效果一样 一个是绝对路径 一个是相对路径应用 /开头表明是绝对路径
			 * 这个地方的相对路径所依据参考路径 就是classpath所在目录 也就是CLASS这目录 加了
			 * /就表明拿到这个绝对路径  所以就是CLASSPATH 
			 * 不加/就表明是相对 自然需要../../向上升级目录了
			 * 这种../../ 方式就可以定位到各个位子的资源了
			 */
			//in =	getClass().getResourceAsStream("../../test2.properties");
			System.out.println(getClass().getClassLoader().getResource(""));
			
			//这样访问不了  不明白原因 硬盘直接使用是可以执行的
//找到原因了 目前的JDK提供的ClassLoader类的getResource(String 相对路径)方法,只能接受一般的相对路径。这样,使用ClassLoader类的getResource(String 相对路径)方法就只能定位到classpath下的资源
			//in = getClass().getClassLoader().getResourceAsStream("../../../../test2.properties");
			
			//拿CLASSpath目录外的文件方式
			System.out.println(new File(this.getClass().getResource("").getFile(),"../../../../test2.properties").getCanonicalFile());
			
			in =  new FileInputStream(new File(this.getClass().getResource("").getFile(),"../../../../test2.properties"));
			 
			properties.load(in);		
			//File f = new File("test");
			//System.out.println("fs"+f.getAbsolutePath());
			System.out.println(System.getProperty("user.dir"));
			
			System.out.println(properties.getProperty("jdbc.driverClassName"));
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}catch(IOException e)
		{
			e.printStackTrace();
		}
		  
	}
}

jsp里面拿路径的话
<%=request.getRealPath("/")%>


总结:在项目要拿文件路径的时候 最好先把路径先打印出来。然后根据路径在来拼接字符串
分享到:
评论

相关推荐

    Java问题定位技术(

    Java问题定位技术涉及到多方面知识点,从JVM到多线程、高并发以及性能调优工具等都是深入理解Java性能问题的核心组成部分。下面详细介绍这些知识点。 首先,JVM(Java虚拟机)是运行Java字节码的虚拟机进程,它是...

    java问题定位技术

    Java问题定位技术是Java开发过程中不可或缺的一环,它涉及到对应用程序的性能监控、错误排查以及异常处理等多个方面。本文将深入探讨如何有效地定位Java中的内存泄漏、线程死锁和CPU占用过高等常见问题。 首先,...

    java PDF关键字定位

    本篇文章将深入探讨如何使用iText库在Java中实现PDF关键字定位。iText是一个强大的PDF处理库,它提供了丰富的API来创建、编辑和读取PDF文档。 首先,我们需要在项目中引入iText库。你提到的`itextpdf-5.5.6.jar`是...

    Java 关键字定位位置

    在Java编程中,关键字定位位置是一项重要的技能,特别是在处理PDF文档时。PDF(Portable Document Format)文件格式广泛用于存储和共享文档,而Java提供了一系列工具和技术来解析和操作这种文件。在这个场景中,我们...

    Java问题定位技术.pdf

    Java问题定位技术是一份专注于Java应用性能分析和故障排除的专业文档。它详细介绍了如何通过Java线程堆栈分析来诊断和解决Java应用程序中的各种问题。文档从线程堆栈的输出和解读方法开始,逐步深入到具体的性能问题...

    java百度定位

    Java 百度定位是Java开发中一种常见的地理位置服务技术,它允许开发者在应用程序中集成百度地图API,实现用户的实时定位、轨迹追踪等功能。在Java应用中集成百度定位服务,可以帮助我们构建各种基于位置的应用,如...

    java 淘宝IP定位查询

    以下将详细介绍如何在Java环境中调用淘宝IP定位查询接口,并进行测试使用。 首先,我们需要了解淘宝IP定位查询接口的基本原理。这个接口通常会根据提供的IP地址返回包含地理位置信息的数据,如城市、省份、国家等。...

    Java问题定位技术.zip_Java 问题排查_Java问题定位技术_定位_定位系统

    Java问题定位技术是Java开发者日常工作中不可或缺的一部分,它涉及到如何高效地发现、分析并解决程序运行时出现的各种问题。这份名为“Java问题定位技术”的文档很可能是为了帮助开发者们掌握这一技能而准备的。以下...

    java源码资源IP定位器java源码资源IP定位器

    java源码资源IP定位器java源码资源IP定位器提取方式是百度网盘分享地址

    Java实现GPS全球定位系统定位数据的提取

    ### Java实现GPS全球定位系统定位数据的提取 #### 引言 全球定位系统(Global Positioning System,简称GPS)是一种重要的导航技术,广泛应用于车辆跟踪、个人定位、地图绘制等领域。GPS系统主要由三大部分组成:...

    java问题定位

    ### Java问题定位详解 #### 一、Java问题定位概述 在软件开发过程中,尤其是在使用Java进行应用程序开发时,经常会遇到各种各样的问题。这些问题可能是由于代码逻辑错误、资源管理不当或者系统配置不正确等原因...

    javacv图片文字定位 https://blog.csdn.net/qq_37307077/article/details/111408748

    在给定的"imageOcr"文件中,可能包含了示例代码、测试图像以及配置文件,你可以参考这些资源来搭建和运行一个简单的文字定位系统。通过实践和调试,你可以不断优化你的OCR应用,提高文字检测和定位的准确性和速度。 ...

    Java问题定位技术(书签版)—JVM调优

    Java问题定位技术,特别是JVM调优,是Java开发者必须掌握的重要技能。JVM(Java虚拟机)是Java程序运行的基础,它负责解释执行字节码,并管理内存、线程和类加载等关键任务。调优JVM可以提高应用程序的性能、稳定性...

    用Java实现GPS全球定位系统定位数据的提取

    ### 用Java实现GPS全球定位系统定位数据的提取 #### 引言 全球定位系统(Global Positioning System,简称GPS)是一种重要的导航定位技术,它能够在全球范围内提供精确的位置、速度和时间信息。随着信息技术的发展...

    java解析资源文件

    首先,理解资源文件的定位。在Java应用中,资源文件通常位于`src/main/resources`目录下(对于Maven或Gradle项目)。这些文件会被构建工具自动打包到最终的JAR或WAR文件中,以便于程序运行时访问。 1. **访问资源...

    java 读取资源文件

    在Java编程中,读取资源文件是常见的任务,特别是在配置应用程序、处理文本数据或加载本地化内容时。本文将深入探讨如何使用Java读取资源文件,特别是properties类型的文件。 资源文件通常存储在项目的类路径...

    java人脸定位.rar

    另一方面,基于深度学习的方法如SSD(Single Shot MultiBox Detector)和MTCNN(Multi-Task Cascaded Convolutional Networks)则利用预训练的神经网络模型,可以更准确地检测和定位人脸,但计算资源需求相对较大。...

Global site tag (gtag.js) - Google Analytics