
正文
java代码中路径 java路径有误怎么办
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
关于java代码中文件路径的问题
这就是相对路径
指java代码中路径的是相对于工程文件java代码中路径的位置而言
在eclipse的结构图中的位置
在windows的文件夹里的位置
在查看属性里的绝对路径的位置
代码来找文件路径
public class Test {
public static void main(String[] args) throws Exception {
System.out.println("当前目录的路径\t"+new File(".").getCanonicalPath());// "."表示当前目录
File file = new File("Buffered.txt");
if(!file.exists()){//如果不存在,就新建该文件
file.createNewFile();
}
System.out.println("Buffered.txt的绝对路径\t"+file.getCanonicalPath());
System.out.println("Buffered.txt的相对路径\t"+file.getPath());
}
}
输出
当前目录的路径 D:\space\workspace\Demo
Buffered.txt的绝对路径 D:\space\workspace\Demo\Buffered.txt
Buffered.txt的相对路径 Buffered.txt
相关问答
Q1: java怎样获取当前目录路径
很多朋友都想知道java如何获取当前目录路径java代码中路径?下面就一起来了解一下吧~
1、利用System.getProperty()函数获取当前路径:
System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径
2、使用File提供的函数获取当前路径:
File directory = new File("");//设定为当前文件夹 try{ System.out.println(directory.getCanonicalPath());//获取标准的路径 System.out.println(directory.getAbsolutePath());//获取绝对路径 }catch(Exceptin e){} File.getCanonicalPath()和File.getAbsolutePath()大约只是对于new File(".")和new File("..")两种路径有所区别。 # 对于getCanonicalPath()函数java代码中路径,“."就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹 # 对于getAbsolutePath()函数,则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径 # 至于getPath()函数,得到的只是你在new File()时设定的路径 比如当前的路径为 C:/test : File directory = new File("abc"); directory.getCanonicalPath(); //得到的是C:/test/abc directory.getAbsolutePath(); //得到的是C:/test/abc direcotry.getPath(); //得到的是abc File directory = new File("."); directory.getCanonicalPath(); //得到的是C:/test directory.getAbsolutePath(); //得到的是C:/test/. direcotry.getPath(); //得到的是. File directory = new File(".."); directory.getCanonicalPath(); //得到的是C:/ directory.getAbsolutePath(); //得到的是C:/test/.. direcotry.getPath(); //得到的是.. 另外:System.getProperty()中的字符串参数如下: System.getProperty()参数大全 # java.version Java Runtime Environment version # java.vendor Java Runtime Environment vendor # java.vendor.url Java vendor URL # java.home Java installation directory # java.vm.specification.version Java Virtual Machine specification version # java.vm.specification.vendor Java Virtual Machine specification vendor # java.vm.specification.name Java Virtual Machine specification name # java.vm.version Java Virtual Machine implementation version # java.vm.vendor Java Virtual Machine implementation vendor # java.vm.name Java Virtual Machine implementation name # java.specification.version Java Runtime Environment specification version # java.specification.vendor Java Runtime Environment specification vendor # java.specification.name Java Runtime Environment specification name # java.class.version Java class format version number # java.class.path Java class path # java.library.path List of paths to search when loading libraries # java.io.tmpdir Default temp file path # java.compiler Name of JIT compiler to use # java.ext.dirs Path of extension directory or directories # os.name Operating system name # os.arch Operating system architecture # os.version Operating system version # file.separator File separator ("/" on UNIX) # path.separator Path separator (":" on UNIX) # line.separator Line separator ("/n" on UNIX) # user.name User’s account name # user.home User’s home directory # user.dir User’s current working directory
JAVA中获取路径 关键字: java中获取路径
1、jsp中取得路径:
以工程名为TEST为例:
(1)得到包含工程名的当前页面全路径:request.getRequestURI() 结果:/TEST/test.jsp (2)得到工程名:request.getContextPath() 结果:/TEST (3)得到当前页面所在目录下全名称:request.getServletPath() 结果:如果页面在jsp目录下 /TEST/jsp/test.jsp (4)得到页面所在服务器的全路径:application.getRealPath("页面.jsp") 结果:D:/resin/webapps/TEST/test.jsp (5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent(); 结果:D:/resin/webapps/TEST
2、在类中取得路径: (1)类的绝对路径:Class.class.getClass().getResource("/").getPath() 结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/ (2)得到工程的路径:System.getProperty("user.dir") 结果:D:/TEST
Q2: 从windows系统上传文件至linux服务器,Java代码中要怎么处理路径?
Java中可以根据平台来判断路径的分隔符的\x0d\x0a通常使用\\或/,也可以使用File.separator一般我在写路径时经常用/\x0d\x0a\x0d\x0a5.取得服务器相对路径\x0d\x0aSystem.getProperty("user.dir")\x0d\x0a例如:E:\apache-tomcat-5.5.16\apache-tomcat-5.5.16\bin\x0d\x0a可以百度一下Java路径路径分隔符
Q3: java项目中文件的路径
java项目中文件的路径-方法大全
一、 相对路径的获得
说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)
System.getProperty("user.dir");
上述相对路径中java代码中路径,java项目中的文件是相对于项目的根目录web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于tomcat安装目录\bin)
二 类加载目录的获得(即当运行时某一类时获得其装载目录)
1.1)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)
InputStreamis=TestAction.class.getClassLoader().getResourceAsStream("test.txt"); (test.txt文件的路径为 项目名\src\test.txt;类TestPath所在包的第一级目录位于src目录下)
上式中将TestPath,test.txt替换成对应成相应的类名和文件名字即可
1.2)通用方法二 (此方法和1.1中的方法类似,不同的是此方法必须以'/'开头) InputStream is=Test1.class.getResourceAsStream("/test.txt");
(test.txt文件的路径为 项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)
三 web项目根目录的获得(发布之后)
1 从servlet出发
可建立一个servlet在其的init方法中写入如下语句(没有请求的话会抛空指针导常)
ServletContext s1=this.getServletContext();
String temp=s1.getRealPath("/"); (关键)
结果形如:F:\tomcat-6.0.36\webapps\test\(test为项目名字)
如果是调用java代码中路径了s1.getRealPath("")则输出F:\tomcat-6.0.36\webapps\test(少了一个"\")
2 从httpServletRequest出发(没有请求的话会抛空指针导常)
String path=request.getSession().getServletContext().getRealPath("/");
结果形如: F:\tomcat-6.0.36\webapps\test\
四 classpath的获取(在Eclipse中为获得src或者classes目录的路径),放在监听器,可以窗口启动获取路径
方法一 Thread.currentThread().getContextClassLoader().getResource("").getPath()
String path = Thread.currentThread().getContextClassLoader()
.getResource("").getPath();
System.out.println("path========" + path);输出: path========/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/
方法二 JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse为src某一个包中的类,下同)
eg:String p1=JdomParse.class.getClassLoader().getResource("").getPath();
System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);
输出:JdomParse.class.getClassLoader().getResource-/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/
另外,如果想把文件放在某一包中,则可以 通过以下方式获得到文件(先定位到该包的最后一级目录)
eg String p2=JdomParse.class.getResource("").getPath();
System.out.println("JdomParse.class.getResource---"+p2);
输出:JdomParse.class.getResource--/F:/tomcat-6.0.36/webapps/test/WEB-INF/classes/
(JdomParse为src目录下jdom包中的类)
四 属性文件的读取:
方法 一
InputStream in = lnewBufferedInputStream( new FileInputStream(name));
Properties p = new Properties(); p.load(in);
注意路径的问题,做执行之后就可以调用p.getProperty("name")得到对应属性的值
方法二
Locale locale =Locale.getDefault();
ResourceBundle localResource = ResourceBundle.getBundle("test/propertiesTest",locale);
String value = localResource.getString("test");
System.out.println("ResourceBundle: " + value);
工程src目录下propertiesTest.properties(名字后缀必须为properties)文件内容如下:
test=hello word
不通过Servlet获取路径
第一种实现
Java代码
URL url = ClassLoader.getSystemClassLoader().getResource("./");
File file =new File(url.getPath());
File parentFile =new File(file.getParent());
System.out.println("webRoot:"+parentFile.getParent());
第二种实现
首先写一个接听类 (推荐使用,容器启动时就执行,不会抛空指针异常,适合做定时器任务来删除服务器文件的路径)
Java代码:
package com.chinacreator.report.listener;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
* @authorxiaoqun.yi
*/
public class PathListener implementsServletContextListener {
private staticServletContext servletContext;
public voidcontextDestroyed(ServletContextEvent sce) {
this.servletContext= sce.getServletContext();
System.out.println("path=======:"+servletContext.getRealPath("/"));
}
public voidcontextInitialized(ServletContextEvent arg0) {
}
}
在web.xml中加入如下配置
Java代码 :
listener
listener-classcom.chinacreator.report.listener.PathListener/listener-class
/listener
五、Java中的getResourceAsStream有以下几种:
1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由 ClassLoader(类加载器)(获取资源)
2. Class.getClassLoader.getResourceAsStream(String path) :默认则是从ClassPath根下获取,path不能以’/'开头,最终是由ClassLoader获取资源。
3. ServletContext. getResourceAsStream(String path):默认从WebAPP根目录下取资源,Tomcat下path是否以’/'开头无所谓,当然这和具体的容器实现有关。
4. Jsp下的application内置对象就是上面的ServletContext的一种实现。
其次,getResourceAsStream 用法大致有以下几种:
第一: 要加载的文件和.class文件在同一目录下,例如:com.x.y 下有类me.class ,同时有资源文件myfile.xml
那么,应该有如下代码:
me.class.getResourceAsStream("myfile.xml");
第二:在me.class目录的子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.y.file 目录下有资源文件myfile.xml
那么,应该有如下代码:
me.class.getResourceAsStream("file/myfile.xml");
第三:不在me.class目录下,也不在子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.file 目录下有资源文件myfile.xml
那么,应该有如下代码:
me.class.getResourceAsStream("/com/x/file/myfile.xml");
总结一下,可能只是两种写法
第一:前面有 “ / ”
“ / ”代表了工程的根目录,例如工程名叫做myproject,“ / ”代表了myproject
me.class.getResourceAsStream("/com/x/file/myfile.xml");
第二:前面没有 “ / ”
代表当前类的目录
me.class.getResourceAsStream("myfile.xml");
me.class.getResourceAsStream("file/myfile.xml");
Q4: springjava代码里中加载jar路径
springjava代码里中加载jar路径:UI,image,background.jpg。路径最前面的,表示根目录,即绝对路径,若没有最左边的,则表示相对路径。使用哪种方法看自己的需求,这里使用了绝对路径。加载的时候使用。
Q5: JAVA的配置路径怎么弄?
JDK环境变量配置的步骤如下:\x0d\x0a1.我的电脑--属性--高级--环境变量.\x0d\x0a2.配置用户变量:\x0d\x0aa.新建 JAVA_HOME\x0d\x0a C:\Program Files\Java\j2sdk1.5.0 (JDK的安装路径)\x0d\x0ab.新建 PATH\x0d\x0a %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin \x0d\x0ac.新建 CLASSPATH\x0d\x0a .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar \x0d\x0a3.测试环境变量配置是否成功:\x0d\x0a 开始--运行--〉CMD\x0d\x0a 键盘敲入: JAVAC JAVA\x0d\x0a出现相应的命令,而不是出错信息,即表示配置成功!\x0d\x0a \x0d\x0a环境变量配置的理解:\x0d\x0a1. PATH环境变量。作用是指定命令搜索路径,在i命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。\x0d\x0a2. CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。\x0d\x0a3. JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。
关于java代码中路径和java路径有误怎么办的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






