java 读取project_java project 和 java web project 获取路径问题

java project中如何获得相对路径(编译后的目录是在/bin目录下)(一般图片 这些目录放在 项目目录下,与src同级)

在static方法中,用

String path = Test.class.getResource("").getPath();

在非static方法中,用

String path = this.getClass().getResource("").getPath();

String path = Test.class.getResource("").getPath();

都行!!

(因为在static方法中没有this关键字)

打印出来的结果如:

(以上获取到的   是该类  所在的相对路径)

====>>>可以使用 Runtime.getRuntime().exec("p.exe");  调用另一个现成的可执行程序或系统命令

Classpath   类路径 ========》》可以理解为项目编译后所在的路径,其实就是项目的路径

最准确讲,应该是Source Folder的路径(比如src目录)

用UploadImage.class.getResource("/")                    可以获取类路径classpath

注意:使用getResource的相对路径一定要以“/”开头,

输出:

另外,还要注意:如果java路径中含空格的话,这种方式获取的路径,其中的空格会被使用“%20”代替,

所以还需要使用String configPath=this.getClass().getResource("/").toString().replaceAll("%20", " ");进行解决!!!

总的来说,就是一下两种:

1、其实在 web 项目中,你也可以直接写成像这样的字符串“images/1.jpg”,,它也是会按相对路径来解析的,不过:

路径不以“/”开头;

脱离了IDE环境,这个写法就是错误的,也并非每个IDE都如此,但我见到的都是这样的。

(默认是该项目下,而非src下)

2、不同的是,使用getResource的相对路径一定要以“/”开头

【使用工程相对路径是靠不住的。     使用CLASSPATH路径是可靠的。

对于程序要读取的文件,尽可能放到CLASSPATH下,这样就能保证在开发和发布时候均正常读取。】

通过CLASSPATH读取包内文件::::

读取包内文件,使用的路径一定是相对的classpath路径,比如a,位于包内,此时可以创建读取a的字节流:

InputStream in = ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt");

java web project中如何获得相对路径(编译后的目录是在/lib/classes目录下)

(一般图片这些目录 都放在  webRoot或webContent目录下)

直接写成“images/1.jpg”,就可以按

相对路径去解析了,默认是在

webRoot或webContent目录下

这样就可以显示图片了

但是不能在路径前面加上“/”,比如

这样是不行的。。

其实这些相对路径,都是按编译后的文件  的目录情况去找资源文件的,所以对编译后的文件的目录要清晰才行。

比如testtt的web项目,目录为:

编译后的目录为:

1、

很少用::(更多的是直接用  “images/1.jpg”的形式)

取得项目 所在的相对路径

输出:

2、

取得绝对路径:

使用HttpServletRequest 对象的getRealPath()方法

String path = request.getRealPath("");

输出:

(如果在加上“/”)

输出:

以上三个的结果都是一样的:

(ServletContext对象获得几种方式:

javax.servlet.http.HttpSession.getServletContext()

javax.servlet.jsp.PageContext.getServletContext()

javax.servlet.ServletConfig.getServletContext()

)

3、

在配置文件中配置所需要的路径

注意:

java project项目获取到的路径是该目录所在的路径

而java web project项目中获取到的路径是部署到服务器(如tomcat上)的路径

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429804.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端插件介绍

1.JQuery EasyUI http://www.jeasyui.net/demo/380.html,各种示例代码可以修改使用,简化开发流程。 http://www.jeasyui.net/download/,下载后能查看各种html的源码,引入它的css、js、jquery,然后拿过来demo里的代码就…

java报错 日志_java 日志报错

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.一月 30, 2021 9:13:10 下午 com.github.u…

存储过程实现可扩展灵活接口

序言 本文分享一个通过数据库(ORACLE)的存储过程,遵循“对修改封闭,对增加开放”的开闭原则,实现的可扩展性极强的灵活接口方案。 背景 本人从事离散型MES系统的开发工作,近期负责了一个PCBA(电…

java 缓冲区中的数据存入缓冲区中_java8中NIO缓冲区(Buffer)的数据存储详解|chu...

java8新特性NIO缓冲区(Buffer)的数据存储。ByteBuffer,CharBuffer,ShortBuffer,IntBuffer,LongBuffer,FloatBuffer,DoubleBuffer.1、缓冲区在java nio中负责数据的存储。缓冲区就是数组。用于存储不同数据类型的数据。根据数据类型不同(boole…

mysql 循环体 如何测试_mysql里如何循环插入数据,进行测试

比如从现在开始一直循环到后年,比如设置8根管线,一直循环下去进行数据叠加,下面是C#代码,不知道怎么写下去了private void button1_Click(object sender, EventArgs e){connectionString “SERVER” server “;” “DATABASE”…

mysql的安装备份恢复_安装使用Percona XtraBackup来备份恢复MySQL的教程

1.安装XtraBackupyum的安装方法:自动$ rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm然后会看到:Retrieving http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpmPrepa…

屏幕尺寸

屏幕尺寸分析 <!DOCTYPE html> <script src"js/jquery-1.11.3.js" type"text/javascript"></script> <html> <head><title>aaa</title><style>body{margin:10px;padding:10px;border:10px solid #000;}&l…

java while do_java中while和do-while的总结

主要内容&#xff1a;1、while循环在程序中的应用2、do-while循环在程序中的应用3、循环结构与判断结构相互嵌套----------------------------------------------------------------------------------------------一、while语法&#xff1b;while(循环条件){循环体}代码演示&a…

scrollWidth,clientWidth,offsetWidth的区别

通过一个demo测试这三个属性的差别。 说明&#xff1a; scrollWidth&#xff1a;对象的实际内容的宽度&#xff0c;不包边线宽度&#xff0c;会随对象中内容超过可视区后而变大。 clientWidth&#xff1a;对象内容的可视区的宽度&#xff0c;不包滚动条等边线&#xff0c;会随对…

java spring包_java 自定义加载器,加载spring包,动态加载实现,jar包隔离,tomcat加载webapp方式...

java 自定义加载器&#xff0c;加载spring包&#xff0c;动态加载实现&#xff0c;jar包隔离&#xff0c;tomcat加载webapp方式发布时间&#xff1a;2018-08-20 12:02,浏览次数&#xff1a;774, 标签&#xff1a;javaspringjartomcatwebapp加载器加载的是配置好classpath路径上…

C#递归、动态规划计算斐波那契数列

//递归public static long recurFib(int num){if (num < 2){return num;}else{return recurFib(num - 1) recurFib(num - 2);}}//动态规划public static long dynFib(int num){int[] nums new int[num];for (int i 0; i < num; i){nums[i] 0;}if (num 1 || num 2){…

java随机产生十个坐标_java中随机坐标

你的问题有两个&#xff1a;1、出现的位置不允许再出现2、当所有的位置都为1的时候&#xff0c;程序完成(地鼠已经去过所有的地洞&#xff0c;而且没有重复)。如果你的问题是这样的话&#xff0c;答案如下&#xff1a;整个的思路&#xff1a;有一个地鼠类&#xff0c;地鼠类里面…

java中使用几率_Java中使用蒙特卡洛算法计算德州扑克成牌概率(二)- 计算牌面分值...

德州扑克中比较重要的一个算法就是计算牌面的得分&#xff0c;不仅仅关乎概率计算的结果&#xff0c;同时也需要很高的性能。蒙特卡洛算法计算的次数越多结果越准确&#xff0c;因此算法的性能至关重要。下面是一个高性能的牌面java计算算法。参数介绍&#xff1a;1)cards 需要…

ubuntu14.04 upgrade出现【Ubuntu is running in low-graphics mode】问题的一个解决办法

在ubuntu14.04上安装docker的时候&#xff0c;由于眼花没看清下图这句话&#xff1a; 直接执行了sudo apt-get upgrade命令。然后发生了一个悲剧&#xff01; 重启后出现下面这个错误&#xff01; 而且在点击OK进入下一步后&#xff0c;再也无法选中其他的配置选项……当时我就…

java 类及对象的课后作业_JAVA类和对象课后作业

1.使用类的静态字段和构造函数&#xff0c;我们可以跟踪某个类所创建对象的个数。请写一个类&#xff0c;在任何时候都可以向它查询“你已经创建了多少个对象&#xff1f;”代码&#xff1a;//显示类//YiMingLai 2016.10.19public class lei {/*** param args*/public static v…

正则表达式二探

什么是正则表达式。 简单说就是按照某种规则匹配符合条件的字符串。 通配符&#xff1a;* https://regexper.com/在线测试正则表达网址。 转载于:https://www.cnblogs.com/tuoxiong/p/6148037.html

java 怎么用 string method return数量_java教程之Map应该怎么用

java教程之Map应该怎么用在自学或者看java教程的时候&#xff0c;大家多多少少都存在着这样或者那样的疑惑&#xff0c;对于这些中软国际小编一直也在整理&#xff0c;今天为大家献上的是关于Map应该怎样去用的一些方法&#xff0c;还是跟过去一样&#xff0c;在这里&#xff0…

使用 ExecuteMultiple 提高批量数据加载的性能

您可以使用 ExecuteMultipleRequest 消息在 Microsoft Dynamics CRM Online 2016 Update 和 Microsoft Dynamics CRM 2016&#xff08;本地&#xff09; 中&#xff08;尤其在 Internet 延迟可能是最大限制因素的 Microsoft Dynamics CRM Online 中&#xff09;支持更高吞吐批量…

安装ODIS报错 java_(实用技术)大众奥迪ODIS常见问题处理方法

我们在平时使用ODIS过程中常常会遇到一下问题&#xff0c;导致我们不知道应该怎么处理。今天这篇文章中我们将陈列一些常见的问题解答&#xff0c;希望对大家有帮助。一、BCM(BFM)的引导型功能不能用解决方案如果桑塔纳&#xff0c;Rapid&#xff0c;新polo等车型遇到BCM(BFM)的…

gulp入坑系列(1)——安装gulp

前言 好吧&#xff0c;我承认我是为了搞定Sass编译CSS文件的问题&#xff0c;迷一样的着手入gulp的坑&#xff0c;sass和gulp的爬坑历程大概会一起更新。然后感觉这里windows和mac的流程差不多&#xff0c;不过mac的通常在指令前加sudo &#xff0c;本喵是windows的本本&#x…