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#怎样获取项目根目录以外的文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)