java项目根目录和类路径问题

java项目根目录和类路径问题,第1张

java获取src目录下文件夹的相对路径问题如下:

目录结构:

project

out

src

readjava

testtxt

files

opts

项目为priject

out目录为class输出目录

src下为文件目录

src下有两个包,files、opts

想通过相对路径获取testtxt的路径

但是用反射只能获取到class,也就是out里的路径

输出后的目录不就是在out里面了,那个里面的和src里面的文件是一样的, getClass()getResource()就可以得到classpath了啊

看看设置的资源文件编译路径

java文件中获得路径

ThreadcurrentThread()getContextClassLoader()getResource("") //获得资源文件(class文件)所在路径

ClassLoadergetSystemResource("")

Class_NameclassgetClassLoader()getResource("")

Class_Nameclass getResource("/")

Class_Nameclass getResource("") // 获得当前类所在路径

SystemgetProperty("userdir") // 获得项目根目录的绝对路径

SystemgetProperty("javaclasspath") //得到类路径和包路径

打印输出依次如下:

file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/

file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/

file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/

file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/

file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/com/xml/imp/

F:\work_litao\uri_test

F:\work_litao\uri_test\WebContent\WEB-INF\classes;F:\work_litao\uri_test\WebContent\WEB-INF\lib\dom4jjar

你如果知道路径可以用绝对路径或者相对路径获取文件,如果你想通过根目录而得到其他目录可以通过AppDomainCurrentDomainBaseDirectory 获取根目录,再处理,通过截字符串等等获得所取文件

假设有一个项目名为:report_emp

requestgetContextPath()获得的是当前的项目名 /report_emp,

要想获得项目实际在磁盘中存贮路径可以使用requestgetSession()getServletContext()getRealPath("/");

本地资源管理器而言:

绝对路径:是从盘符开始的路径,磁盘上真正的路径的,例如:E:\帮助文档\Jquery\jqAPI;

相对路径:是从当前路径开始的路径,如当前路径为E:\帮助文档,则Jquery\jqAPI为相对路径;

就web站点而言:

假如我们在report_emp的admin/loginjsp中访问了report_emp/admin/images/logogif的

绝对路径:以Web 站点根目录为参考基础的目录路径;

在loginjsp中的src则为report_emp/admin/images/logogif

相对路径:以引用文件之网页所在位置为参考基础,而建立出的目录路径;

在loginjsp中的src则为/images/logogif

一 相对路径的获得

说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)

String relativelyPath=SystemgetProperty("userdir");

上述相对路径中,java项目中的文件是相对于项目的根目录

web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于 tomcat安装目录\bin)

二 类加载目录的获得(即当运行时某一类时获得其装载目录)

11)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)

InputStream is=TestActionclassgetClassLoader()getResourceAsStream("testtxt");

(testtxt文件的路径为 项目名\src\testtxt;类TestAction所在包的第一级目录位于src目录下)

上式中将TestAction,testtxt替换成对应成相应的类名和文件名字即可

12)通用方法二 (此方法和11中的方法类似,不同的是此方法必须以'/'开头,参考>

使用以下方式,如果获取不到,那么说明你的服务器原本就不在E:盘,那么建议你使用绝对路径来解决这个问题,直接定义路径,而不要获取路径。 使用<%=requestgetRealPath("")%>即可得到根目录,必须调用以下几个包:<%@ page import="javautil" %>

<%@ page import="javaxservlet>

以上就是关于java项目根目录和类路径问题全部的内容,包括:java项目根目录和类路径问题、JAVA中如何得到文件路径、c#怎样获取项目根目录以外的文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9296551.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存