首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java ().getPath()在class.getRessource开头添加了一个奇怪的'/‘

Java ().getPath()在class.getResource开头添加了一个奇怪的'/'。

Java中的getPath()方法是用于获取文件的路径的方法,而class.getResource()方法是用于获取类路径下资源的URL的方法。在使用class.getResource()方法时,如果路径以'/'开头,表示从根路径开始查找资源;如果路径不以'/'开头,表示从当前类所在的包路径开始查找资源。

在Java中,路径的写法有两种形式:相对路径和绝对路径。相对路径是相对于当前工作目录或者当前类所在的包路径的路径,而绝对路径是从根路径开始的路径。

当在class.getResource()方法中使用相对路径时,如果路径以'/'开头,表示从根路径开始查找资源;如果路径不以'/'开头,表示从当前类所在的包路径开始查找资源。

所以,当在class.getResource()方法中使用Java ().getPath()时,如果Java类所在的包路径为com.example,Java ().getPath()返回的路径为"/com/example",那么在class.getResource()方法中添加'/'后,表示从根路径开始查找资源,即"/com/example"。

这种写法的优势是可以确保资源的绝对路径,不受当前工作目录的影响,可以在任何位置正确地获取到资源。

Java中的class.getResource()方法可以用于获取类路径下的资源,例如配置文件、图片、音频等。它的应用场景包括但不限于:

  1. 加载配置文件:可以使用class.getResource()方法加载项目中的配置文件,例如数据库配置文件、日志配置文件等。
  2. 加载图片、音频等资源:可以使用class.getResource()方法加载项目中的图片、音频等资源文件。
  3. 加载国际化资源:可以使用class.getResource()方法加载项目中的国际化资源文件,实现多语言支持。

腾讯云相关产品和产品介绍链接地址:

  1. 云服务器(CVM):提供弹性计算能力,满足各种业务场景的需求。详情请参考:https://cloud.tencent.com/product/cvm
  2. 云数据库 MySQL 版(CDB):提供高性能、可扩展的云数据库服务,支持自动备份、容灾等功能。详情请参考:https://cloud.tencent.com/product/cdb
  3. 云存储(COS):提供安全、稳定、低成本的云存储服务,适用于图片、音视频、文档等各种类型的文件存储。详情请参考:https://cloud.tencent.com/product/cos

请注意,以上仅为腾讯云的相关产品示例,其他云计算品牌商也提供类似的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

maven项目中获取类路径和项目路径写法示例

springboot项目中当在类路径(resources目录)下如何获取类路径下某个文件 1 Controller中获取类路径写法: String fileName = "verifierTemplate.xlsx..."; String path = this.getClass().getResource("/").getPath()+fileName; java.lang.Class类中方法 public...getResource是java.lang.Class方法,也就是由字节码对象调getResource接受一个字符串参数,如果以"/"开头,就在classpath根目录下找(不会递归查找子目录),如果不以...”/”开头,就在调用getResource字节码对象所在目录下找(同样不会递归查找子目录) 测试 System.out.println("路径一为:"+this.getClass().getResource...workspace/meas/target/classes/ 从源码中可以看到其实在getResource方法中封装了getClassLoader().getResource("") 项目启动后会自动项目根目录下生成一个

2.3K20

android学习笔记----多线程断点续传下载原理设计

: 先把tomcat服务器开起来,然后webapps/ROOT/目录下放abc.exe供下载测试 先来段java实现代码: import java.io.BufferedReader; import...new RandomAccessFile("time.txt", "rwd"); breakpoint.seek(0); // 准备从time.txt开头读取未下载完成线程个数...RandomAccessFile("time.txt", "rwd"); breakpoint.seek(0); // 准备从time.txt开头读取未下载完成线程个数 String...有几个线程就把资源大小除以几,除不尽就让最后一个线程多下载一点,这就是为什么我们经常用迅雷下载时候明明到了99%却最后下载越来越慢,因为别的线程都下载完了,还在等待最后一个线程下载。...,所有线程都执行完了,准备去删除txt文件时候没有执行完,导致还剩余txt文件,下次再下载时候就会出问题,所以添加了“重新下载”按钮,就把txt文件全部删掉再开始下载。

30620
  • Sparkjava Framework 文件遍历漏洞(CVE-2016-9177)分析与探究

    Author:dawu(知道创宇404实验室) Date:2016-11-16 0x00 漏洞概述 1.漏洞简介 Sparkjava是一款小型web框架,它能够让你以很少代码构建出一个java web...,官方添加了DirectoryTraversal.protectAgainstInClassPath(resource.getPath());进行判断。...\l.txt先将所有的\换成/,再对路径进行处理,最后结果为/tmp/l.txt),resource.getPath()就是addedPath值。 ?...综上所述,官方通过比较经过处理后路径开头和我们设置externalLocation()路径是否相同来防止我们利用..\读取任意文件。...与Sparkjava(CVE-2016-9177)同时爆出来一个漏洞GitLab任意文件读取(CVE-2016-9086)是利用软链接特性,我们就顺手测试了软链接在Sparkjava下利用。

    1K50

    3--Gradle入门 - 创建普通Java工程

    3--Gradle入门 - 创建普通Java工程 前言 前面我们以及尝试过使用 Gradle 创建项目,下面我们使用 Idea 来创建普通Java工程 创建普通Java工程 1....创建 Gradle 管理依赖项目 语言设置 Java 依赖设置 Gradle DSL 使用 Groovy 2....Specified location 特别提示 1:使得Terminal 中执行以gradlew 开头命令和操作图形化IDEA 使用Gradle 版本不一定是同一个版本哦。...1.Terminal中以gradlew开头指令用是Wrapper规定gradle版本,wrapper中规定版本默认和idea插件中规定版本一致。...特别提示3:当 我 们 gradle.build 文 件 加 依 赖 之 后 , 这 些 依 赖 会 下 载 到GRADLE_USER_HOME/caches/modules-2/files

    23720

    得到JAVA项目根文件夹

    大家好,又见面了,我是全栈君 获得相对路径 说明:相对路径(这并不说明什么时候相对谁)可以通过以下来获得(无论是一般java项目或web工程) String path = System.getProperty...(“user.dir”); E:\github\J2SE 上述相对路径中,java项目中文件是相对于项目的根文件夹 web项目中文件路径 视不同webserver不同而不同(tomcat是相对于...tomcat安装文件夹\bin) 类载入文件夹获得(即当执行时某一类时获得其装载文件夹) 通用方法一(不论是一般java项目还是web项目,先定位到能看到包路径第一级文件夹) String.../logback.xml 通用方法二 String path = getClass().getResource(“/logback.xml”).getPath(); /E:/github/J2SE.../target/classes/logback.xml 此方法必须以’/’开头 web项目根文件夹获得(公布之后) request.getRealPath(“/”) 这种方法已经不推荐使用了,想必我们使用过程中已经注意到了

    55010

    Android中Bitmap、File与Uri之间简单记录

    )) { realPath = uri.getPath(); //如果得到scheme以file开头 } else if (ContentResolver.SCHEME_CONTENT.equals...(scheme)) { //得到scheme以content开头 Cursor cursor = context.getContentResolver().query(uri, new...= null) { String uriString = uri.toString(); int index = uriString.lastIndexOf("/"); //匹配 / 一个路径中最后出现位置...表示现有文件或目录每个路径名都有一个惟一规范形式。表示非存在文件或目录每个路径名也有一个惟一规范形式 。非存在文件或目录路径名规范形式可能不同于创建文件或目录之后同一路径名规范形式。...\src\test1.txt D:\workspace\src\test1.txt 4、URI 与Uri区别 URI 是java.net子类 Uri 是android.net子类,Uri不能被实例化

    4K10

    某酒店App sign、appcode签名解析(一) 带壳分析 r0tracer

    一、目标 [main.png] 今天目标是这个sign和appcode 二、步骤 Jadx没法上了 app加了某梆企业版,Jadx表示无能为力了。...黑白名单trace多个函数,第一个参数是白名单(包含关键字),第二个参数是黑名单(不包含关键字) // hook("javax.crypto.Cipher", "$"); hook...com.besxxxhotel.app.whnetcomponent.utils.SignUtil.getSignString 参数 0 1 是固定值 参数 2 应该是 did 参数 3 是当前时间戳 参数 4 也是固定值 参数 5 就比较奇怪了..., 日志里面搜索一下,发现 5是 函数 decodeASCII 返回值, 它入参是一个 java.util.Map。...[ffshow.jpeg] 当你走上了不一样道路,你才有可能看到和别人不一样风景 TIP: 本文目的只有一个就是学习更多逆向技巧和思路,如果有人利用本文技术去进行非法商业获取利益带来法律责任都是操作者自己承担

    1.1K20

    从苏炳学术论文中,看看如何写论文

    成为首位闯入奥运会男子百米决赛中国运动员,也是电计时代第一个跑进百米决赛黄种人、亚洲人。 不仅如此,同时还是暨南大学教授。...苏炳文章可以分为:人文类、科学类 兼顾运动之余,又可以文学史上留下浓墨重彩一笔,真是文体两开花啊! 运动行为志研究 这篇论文主要记录是苏炳与程志理聊天对话。...,作为实验初始条件数据: 看完论文开头,我对苏炳身体情况已经了然于胸,比苏炳他自己还更了解他自己,包括他身高,体重等等,一下子把苏神高大形象跃然纸上。...文章开头直接回顾了自2010年以来中国100m短跑发展情况,并给出了2010-2018中国100m最好成绩示意图: 9次最好成绩中,有7次都是苏炳跑出最好成绩,这个数据做到了以史为鉴,而且总结了自身经验...同时,以“牺牲”自己为代价,切身实地做实验,苏炳论文中,他总结了以下有效提高短跑成绩方法: 践行科学化训练理念 打造良性团队竞争模式 注重提升运动员素养 通过上面的介绍,我们可以深刻了解到苏炳如此快速提升重要因素是什么

    59740

    【文件IO】文件系统操作

    基本操作概述 创建文件 删除文件 创建目录 重命名文件 判定文件存在… Java 中,提供了一个 File 类,进行文件系统操作,这个对象会使用“路径”进行初始化,从而表示一个具体文件(这个文件可以存在...() 返回 FIle 对象纯⽂件名称 获取文件名test.txt String getPath() 返回 File 对象⽂件路径 获取当前文件所在目录+当前文件名C:\user\1\text.txt...,是拿绝对路径进行构造,所以此时 Path 就是一个绝对路径,于是三个 getPath 就都是一样 相对路径基准不是固定,此时我们通过 IDEA 运行程序,基准路径就是 IDEA 打开这个项目所在路径...:deletOnExit(),存在意义就是可以去构造一些“临时文件” 比如使用 word 创建一个文档,打开“显示隐藏文件”,在你 word 文档同级目录下,就有一个隐藏文件,名字带有一些奇怪符号...遍历目录 若要完成递归操作就需要一个函数来辅助完成 首先判断是不是目录 用数组,列出当前目录中所包含内容 import java.io.File; public class Demo5

    14410

    Android头像上传功能实现代码(获取头像加剪切)

    因为项目中需要用到头像上传功能,所以就下个Ddmo先来实现下。 demo我是类似仿微信一个GridView中展示所有的图片,其中第一个item可以去照相;获取到图片后再进行剪切。...来实现 Demo写比较粗糙,效果只是4.4手机和7.0模拟器跑了一遍,所以可能会出现问题。...如下是选择图片中代码 通过LoaderManager来获取到所有的图片,然后第一个进行拍照处理 package com.item.demo.photo.activity; import android.Manifest...Build.VERSION.SDK_INT = 23) { requestPermissions(permissions, code); } } /** * 根据Uri返回文件绝对路径 * 兼容了file:///开头...和 content://开头情况 */ public static String getRealFilePathFromUri(final Context context, final Uri uri

    2.2K31

    Kafka中消息操作层级调用关系Kafka源码分析-汇总

    [java.lang.Long, LogSegment]: 每个目录里包含多个LogSegment, 每个Segment分为Log和Index两类文件,这两个文件以存储最小offset来命名,这个...Map管理了当前目录下所有的LogSegment, key就是这个最小offset; private def loadSegments(): 从磁盘文件加载初始化每个LogSegment, 每个Log...类对象创建初始化时会调用, 这个函数比较重要, 下面的代码里加了注释 dir.mkdirs() var swapFiles = Set[File]() // first...MessageSet.entrySize(messageAndOffset.message), config.maxMessageSize)) } } 3.3 检查Record set整体大小是否超出一个..., 新建一个LogSegment用入写入当前msg val segment = maybeRoll(validMessages.sizeInBytes) 3.5 追加新

    78320

    为什么 HashMap 要用 h^(h >>>16) 计算hash值?槽位数必须是 2^n?

    昨天中午,一位粉丝朋友微信私信我,问:为啥HashMaphash值计算格式是这样:(h = key.hashCode()) ^ (h >>> 16)?h ^ ^ (h >>> 16)是什么意思?...,增加了结果随机性 01101010 11101111 11100010 11000100 ^ 00000000 00000000 01101010 11101111 --------------...,这样就会导致,keyhash值是低位相同,高位不同的话,计算出来槽位下标都是同一个,大大增加了碰撞几率; 但如果使用h ^ (h >>> 16),将高位参与到低位运算,整个随机性就大大增加了;...,但小心有坑: 既然这里能以null对象作为key,那么保存值和取值时候,务必要注意,很可能在存值时候,key对象还是null,但到取值时候,key已经被赋上值,从而导致最终值取不出来: public...”套路“算是说清楚了; 新手写代码,能跑就行,对于大神来说,写好才行;好代码,都是从各个微小细节入手,最终达到一个更加完美的效果;就单单一个hash、槽位运算,大神也要将性能发挥到极致,可能这就是差别吧

    1.1K10

    扛不住 1W+ 并发流量请求,SpringCache 缓存注解真的那么弱?

    压测异常 1、实际 API 压测时,时不时程序执行上抛出类型转换异常: java.lang.ClassCastException: java.util.ArrayList cannot be cast...正确姿势是,一旦存在命令执行异常,就要立马销毁这个连接! 所以个人觉得这是 SpringCache 一个坑或者说是 SpringCache 与 Codis 配合使用一个 bug。 怎么解决了?...修改源码 第一 类型转换异常 redis.clients.jedis.Transaction类中,exec 方法体添加了如下代码: public List exec() { ....return formatted;} redis.clients.jedis.BinaryJedis类中,exists 方法体添加了如下代码: public Long exists(final byte...jsonValue, new TypeToken>() { }.getType()); } return R.ok().data(list);} 总结 并发很高业务场景

    1.2K30

    手把手教你用Java获取IP归属地

    前几个月微信公众号上线了IP归属地功能,后续知乎、抖音等平台纷纷添加了该功能。如果是国内用户精确到省份,国外用户精确到国家。本文就使用Java实现获取IP归属地。...主要讲解几个步骤: Java获取请求IP 解决Nginx转发问题 通过IP地址获取归属地 获取IP地址 首先使用基于Spring Boot搭建项目,controller添加HttpServletRequest...局域网IP是以192.168.x.x开头,或者是127.0.0.1IP。 所以需要部署到外网服务器才能获取到公网地址。部署到外网服务器能成功获取IP地址。...本文采用离线IP地址定位库 Ip2region,Ip2region是一个离线IP地址定位库,微秒查询时间: 首先找到gihub官网找到地址库ip2region.xdb,具体路径为data/ip2region.xdb...小程序效果展示 根据上面的程序,做了一个小程序展示归属地。 页面效果图: 扫一扫,就能获取查到自己归属地了。

    2.1K30

    mapred linuxtaskcontroller目录权限问题探究

    今天发现测试环境kerberos Hadoophive不能跑了,具体表现是select * limit这种不走mapredjob是ok,走mapredjob就会报错,报错比较奇怪(Unable...用户呢 从调用栈信息看到,是调用LinuxTaskController类(因为用到了kerberos,taskcontroller需要选择这个类)initializeJob出错了。...initializeJob方法是对job做初始操作,传入user,jobid,token,mapredlocal dir等参数,生成一个数组,并调用ShellCommandExecutor构造方法进行实例化...,如果有一个目录属主不为root,就会出错。...这其实是出于taskcontroller安全考虑,代码中定义了不少关于这个可执行文件权限验证,只要有一个地方设置不正确,tasktracker都不会正常运行。

    48710
    领券