java类文件路径|java项目根目录和类路径问题

java类文件路径|java项目根目录和类路径问题的第1张示图

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

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

目录结构:

project

out

src

read.java

test.txt

files

opts

项目为prijectout目录为.class输出目录src下为文件目录src下有两个包,files、opts

想通过相对路径获取test.txt的路径

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

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

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

㈡ 怎么设置JAVA的类路径

比如你的java文件放在classpath的某个目录下的/mypackage/test/test1.java包名就是:mypackage.test.test1;其他文件使用这个包的时候你就写:importmypackage.test.test1;不用什么设置。

㈢ 在java开发中,什么是类路径

实体类所在目录就称为类路径

㈣ java类路径到底指的是什么

类路径是该类所在的地址,也就是该类所在位置的包名,也叫完整类名。因为包的特性,Java允许在不同包中存在名称一样的类,如果不指明路径的话,编译器就无法找到正确的类,所以必须指明路径

㈤ Java 类路径指的是哪里

Java 类路径告诉 java 解释器和 javac 编译器去哪里找它们要执行或导入的类。类(您可能注意到的那些 *.class 文件)可以存储在目录或 jar 文件中,或者存储在两者的组合中,但是只有在它们位于类路径中的某个地方时,Java 编译器或解释器才可以找到它们。在 Windows 中,类路径中的多个项是用分号分隔( ;)的,而在 UNIX 中,这些项是用冒号分隔(:)的。这里我以调用一个JAR文件为例,来说明Java类路径的作用1、直接在命令行中运行JAR文件的主类,这是会提示找不到主类。这时就需要我们配置路路径之后再运行该Jar文件如在命令行输入 java com.miaomiaoxue.olivepress.Main(这时欧文们要运行的Jar文件主类路径)。这时会弹出提示信息找不到主类2、配置类路径,这里介绍了两种在命令行中配置类路径的方式•第一步,在命令窗口中配置类路径:set CLASSPATH =.;JAR文件的全名 3、配置类类路径后我们在在命令行中运行java com.miaomiaoxue.olivepress.Main这时就显示运行成功的结果。这些都是Java中的基础知识。希望可以帮到您,谢谢!

㈥ JAVA中如何得到文件路径

java文件中获得路径Thread.currentThread().getContextClassLoader().getResource("") //获得资源文件(.class文件)所在路径ClassLoader.getSystemResource("")Class_Name.class.getClassLoader().getResource("")Class_Name.class .getResource("/") Class_Name.class .getResource("") // 获得当前类所在路径System.getProperty("user.dir") // 获得项目根目录的绝对路径System.getProperty("java.class.path") //得到类路径和包路径打印输出依次如下: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_testF:\work_litao\uri_test\WebContent\WEB-INF\classes;F:\work_litao\uri_test\WebContent\WEB-INF\lib\dom4j.jar

㈦ java里文件路径怎么写

Filefile=newFile("D:\\123.txt");你这种不用绝对路径是不行的,只有一个方法,在web工程启动内servlet中获取到webroot路径,在servlet的init中使用StringwebRoot=getServletContext().getRealPath("/");获取,然后使用这容webRoot变量追加路径,再newFile(),这样的话要求就是,你的服务必须要启动,否则不会init,无法得到工程发布目录的相对路径

㈧ java项目中文件的路径

java项目中文件的路径-方法大全

一、 相对路径的获得

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

System.getProperty("user.dir");

上述相对路径中,java项目中的文件是相对于项目的根目录web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于tomcat安装目录in)二 类加载目录的获得(即当运行时某一类时获得其装载目录)1.1)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)InputStreamis=TestAction.class.getClassLoader().getResourceAsStream("test.txt");(test.txt文件的路径为 项目名srcest.txt;类TestPath所在包的第一级目录位于src目录下)

三 web项目根目录的获得(发布之后)1 从servlet出发

可建立一个servlet在其的init方法中写入如下语句(没有请求的话会抛空指针导常)

ServletContext s1=this.getServletContext();String temp=s1.getRealPath("/"); (关键)结果形如:F:omcat-6.0.36webappsest(test为项目名字)

如果是调用了s1.getRealPath("")则输出F:omcat-6.0.36webappsest(少了一个"")

2 从httpServletRequest出发(没有请求的话会抛空指针导常)

String path=request.getSession().getServletContext().getRealPath("/");

结果形如:F:omcat-6.0.36webappsest

四 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(newFileInputStream(name));

Properties p =newProperties();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 =newFile(url.getPath());

File parentFile =newFile(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 {

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-class>com.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,“ / ”代表了myprojectme.class.getResourceAsStream("/com/x/file/myfile.xml");第二:前面没有 “ / ”代表当前类的目录me.class.getResourceAsStream("myfile.xml");me.class.getResourceAsStream("file/myfile.xml");

㈨ 如何获得当前Java文件的路径

public class Test { public static void main(String[] args) { String path = "Test.java"; File file = new File(path); System.out.println(file.getAbsoluteFile()); }} —–运行结果:D:\workspaces\studyStruts2\Test.java不加任何路径,就是指当版前路径望采纳权

㈩ 谁知道Java中的类路径是什么

Java 类路径告诉 java 解释器和 javac 编译器去哪里找它们要执行或导入的类。类(您可能注意到的那些 *.class 文件)可以存储在目录或 jar 文件中,或者存储在两者的组合中,但是只有在它们位于类路径中的某个地方时,Java 编译器或解释器才可以找到它们。在 Windows 中,类路径中的多个项是用分号分隔( ;)的,而在 UNIX 中,这些项是用冒号分隔(:)的。 这里我以调用一个JAR文件为例,来说明Java类路径的作用1、直接在命令行中运行JAR文件的主类,这是会提示找不到主类。这时就需要我们配置路路径之后再运行该Jar文件如在命令行输入 java com.miaomiaoxue.olivepress.Main(这时欧文们要运行的Jar文件主类路径)。这时会弹出提示信息找不到主类2、配置类路径,这里介绍了两种在命令行中配置类路径的方式•第一步,在命令窗口中配置类路径:set CLASSPATH =.;JAR文件的全名 3、配置类类路径后我们在在命令行中运行java com.miaomiaoxue.olivepress.Main这时就显示运行成功的结果。这些都是Java中的基础知识,如果你想更加详细的了解相关知识,你可以到秒秒学的网站上找到相应的课程。

未经允许不得转载:山九号 » java类文件路径|java项目根目录和类路径问题

赞 (0)