精华内容
下载资源
问答
  • 获取JAVA文件路径

    2016-11-04 18:45:00
    path CLASSPATH getResource 获取文件路径

    path

    Windows操作系统根据path环境变量查找命令,若要使用JDK的工具命令,例如java、javac,必须将JDK工具命令所在目录配置在path变量中。
    JDK安装路径下的bin目录,存放了JDK的各种工具命令。

    %JAVA_HOME%\bin;
    %JAVA_HOME%指JDK安装目录

    classpath

    classpath用于指定java运行时,jvm寻找class、jar文件的存储目录。只跟java运行有关,跟编译无关。

    • JDK1.5之后不用设置CLASSPATH环境变量,JRE会自动搜索当前路径下的类文件 ,而且使用java的编译和运行工具时,系统可以自动加载dt.jar和tool.jar文件中的java类,因此不再需要设置该环境变量
    • 当然1.5之后也可以设置CLASSPATH变量,一旦设置了该变量,JRE会按照指定的路径搜索java类,这意味着该环境变量中不包含(.),JRE不会从当前路径下搜索java类
    .;%JAVA_HOME%\lib;
    .指当前目录
    多路径用分号隔开,Linux系统用:隔开

    DOS命令运行java程序

    编译java程序

    命令:javac -d destdir srcFile

    • srcFile指java源文件所在的位置
    • -d destdir 是javac命令的选项,用以指定编译生成的字节码文件的存放路径
    • 只需指定目标文件存放路径,无需指定字节码文件的文件名,因为javac编译后生成的字节码文件有默然的文件名:以源文件所定义类的类名作为主文件名,以.class作为后缀名
    • 如果一个源文件定义了多个类,将编译生成多个字节码文件
    • -d 选项可省略,生成的字节码文件放在当前路径下

    先进入HelloWord.java文件所在目录
    这里写图片描述

    运行class文件

    命令:java java类名

    • java命令后的参数是java类名,而不是字节码文件的文件名,也不是java源文件名

    先进入HelloWord.class文件所在目录
    这里写图片描述

    • java -classpath dir1;dir2;dir3;…; java类名

    如果运行java程序时z定了-classpath选项的值,JRE将严格按照-classpath指定的路径搜索java类,CLASSPATH环境变量指定的搜索路径不再有效,除非在-classpath选项的值中引用该变量。

    例如:

    java -classpath %CLASSPATH%;.;./lib/* HelloWord
    • %CLASSPATH%:先从CLASSPATH环境变量配置的路径下查找
    • “.”:从当前目录查找
    • “./lib/*”:当前目录中没有时,再从当前目录下的lib文件下的所有jar文件中查找,直到找到

    eclipse等开发环境中,往往不去读操作系统配置的CLASSPATH,而是根据bulid config自动生成classpath

    注意事项

    • class文件的查找方式:根据classpath配置的先后顺序依次查找,找到则停止。因此若后续路径中存在同名class文件,那么调整classpath路径配置顺序会导致程序运行结果的变化。
    • classpath的第一个路径非常重要!为该java程序运行的根路径。
    • classpath配置的目录中,如果存放jar文件,该文件里的class文件不会被读取,只读取以目录结构存放的class文件

    getResource()

    xxx.class.getResource(“”).getPath()获取xxx类所在路径,不包括xxx类的名称
    xxx.class.getResource(“/”).getpath()获取java运行的根路径:classpath中配置的第一个目录
    xxx.class.getClassLoader().getResource(“”).getPath()获取java运行的根路径,因为ClassLoader处于根路径
    xxx.class.getClassLoader().getResource(“/”)错误写法!!!获取到null
    System.getProperty(“user.dir”)java运行目录,可能与java根路径不同

    获取文件的具体情况

    src包下

    这里写图片描述

    xxx.class.getResource("/").getPath() + "source.xml";// 先获取根路径
    xxx.class.getClassLoader().getResource("source.xml").getPath();// 先获取ClassLoader路径

    src并列包下

    这里写图片描述

    System.getProperty("user.dir") + File.separator + "my file" + File.separator + "source.xml"// 先获取项目所在路径

    类所在包下

    这里写图片描述

    xxx.class.getResource("").getPath()+"source.xml";// 先获取类所在目录

    WebRoot目录

    这里写图片描述

    String path = xxx.class.getResource("/").getPath()
    if(path.indexOf("WEB-INF") > 0){
        path = path.substring(0,path.indexOf("WEB-INF"));  
    }
    path = path+"css"+File.separator+"home.css";
    展开全文
  • 一.Java文件获取路径方式: package first.second;    import java.io.File;    public class GetPath {     public static void getPath()   {   //方式一   System.out.println

    一.Java文件获取路径方式:

    1. package first.second;  
    2.   
    3. import java.io.File;  
    4.   
    5. public class GetPath {  
    6.   
    7.     public static void getPath()  
    8.     {  
    9.         //方式一  
    10.         System.out.println(System.getProperty("user.dir"));  
    11.         //方式二  
    12.         File directory = new File("");//设定为当前文件夹  
    13.         try{  
    14.             System.out.println(directory.getCanonicalPath());//获取标准的路径  
    15.             System.out.println(directory.getAbsolutePath());//获取绝对路径  
    16.         }catch(Exception e)  
    17.         {  
    18.             e.printStackTrace();  
    19.         }  
    20.         //方式三  
    21.         System.out.println(GetPath.class.getResource("/"));  
    22.         System.out.println(GetPath.class.getResource(""));  
    23.         //方式4  
    24.         System.out.println(GetPath.class.getClassLoader().getResource(""));  
    25.         System.out.println(GetPath.class.getClassLoader().getResource("source.xml"));  
    26.     }  
    27.     /** 
    28.      * @param args 
    29.      */  
    30.     public static void main(String[] args) {  
    31.         // TODO Auto-generated method stub  
    32.         GetPath.getPath();  
    33.     }  
    34.   
    35. }  

      其在java project项目下输出如下:

    1. 方式一  
    2. D:\eclipse\juno_workspace\Test  
    3. 方式二  
    4. D:\eclipse\juno_workspace\Test  
    5. D:\eclipse\juno_workspace\Test  
    6. 方式三  
    7. file:/D:/eclipse/juno_workspace/Test/bin/  
    8. file:/D:/eclipse/juno_workspace/Test/bin/first/second/  
    9. 方式四  
    10. file:/D:/eclipse/juno_workspace/Test/bin/  
    11. file:/D:/eclipse/juno_workspace/Test/bin/source.xml 

     在Web project输出如下:


    1. 方式一  
    2. D:\apache-tomcat-6.0.36\bin  
    3. 方式二  
    4. D:\apache-tomcat-6.0.36\bin  
    5. D:\apache-tomcat-6.0.36\bin  
    6. 方式三  
    7. file:/D:/apache-tomcat-6.0.36/webapps/ConsisPro/WEB-INF/classes/  
    8. file:/D:/apache-tomcat-6.0.36/webapps/ConsisPro/WEB-INF/classes/first/second/  
    9. 方式四  
    10. file:/D:/apache-tomcat-6.0.36/webapps/ConsisPro/WEB-INF/classes/  
    11. file:/D:/apache-tomcat-6.0.36/webapps/ConsisPro/WEB-INF/classes/source.xml 

    说明一下,实验类是放在first.second包下的,source.xml是src文件下的一个文件。在java project测试的项目名是Test,在web project测试的项目名是ConsisPro,还有就是 web project项目测试时运行在tomcat中,通过调用实验类GetPath产生的运行结果。

             从上面我们可以看出方式一和方式二在java project项目下是获取的项目根目录,而在web project项目下获取的是tomcat的bin目录。

             方式三当使用“/”时获取的是类编译后所在的目录,当不使用“/”是获取的是编译好类所在的目录,也就是前面加“/”产生的目录加上相应的包目录。

            方式四中第一个获取的也是类编译后的目录,第二个获取的是也就是我们放在src目录底下的文件,编译后放在类编译后的目录底下,当我们需要获取放在Src目录底下的文件时,用这个方式很方便。


    二.在web project 还有用的大多数就是一个

    ServlertContext域的getRealPath()方法;

    获取发布的webApp路径,下面就是我打的war包,大家可以参考一下


    下面是我的参考代码

    servletContext().getRealPath("/importtemplate/盘点清单明细.xlsx");

    这是打印出来的结果,这是我带ide中,大家只需要关注项目名称(office)后的路径

    D:\yf_ide\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\office\importtemplate\盘点清单明细.xlsx。

    下面是我项目打包后classes下的目录



    在jsp或controller你只需得到servletContext这个对象然后.getRealPath("/WEB-INF-classes/你需要的文件或文件夹")!

    如果是普通java类,你可以通过方式3或4来获取文件路径或文件

    本文参考http://blog.csdn.net/appleprince88/article/details/11599805#t0


    展开全文
  • 获取Java文件路径的两种方法

    千次阅读 2009-04-29 16:07:00
    方法一:Thread.currentThread().getContextClassLoader().getResource(""),获取文件所在路径,如 String initPath=Thread.currentThread().getContextClassLoader().getResource("").toString(); initPath=init...

    方法一:Thread.currentThread().getContextClassLoader().getResource(""),获取文件所在路径,如

     

     方法二:System.getProperty("user.dir"),获取工作目录路径,但是在Tomcat里运行时,显示的就不是文件路径了,而是Tomcat的路径

    获取更多属性见下,更多请见API文档:

    展开全文
  • java文件路径获取

    2012-04-17 14:59:21
    java文件路径获取方法应用总结,非常好
  • 以下是对java获取项目文件路径的实现方法进行了介绍,需要的朋友可以过来参考下
  • Java文件路径/服务器路径的获取

    千次阅读 2017-08-08 19:19:23
    Java文件路径获取 几种获取方式 getResourceAsStream ()返回的是inputstream getResource()返回:URL Class.getResource("") 返回的是当前Class这个类所在包开始的为置 Class.getResource("/") 返回的是...

    Java文件路径获取

    • 几种获取方式

    getResourceAsStream ()返回的是inputstream

    getResource()返回:URL

    Class.getResource("")    返回的是当前Class这个类所在包开始的为置

    Class.getResource("/") 返回的是classpath的位置

    getClassLoader().getResource("")  返回的是classpath的位置

    getClassLoader().getResource("/")  错误的!!

    Class.getResourceAsStream 和 ClassLoader.getResourceAsStream 

    这两个方法还是略有区别的, 以前一直不加以区分,直到今天发现要写这样的代码的时候运行错误,才把这个问题澄清了一下。基本上,两个都可以用于从classpath里面进行资源读取,classpath包含classpath中的路径和classpath中的jar

    两个方法的区别是资源的定义不同,一个主要用于相对与一个object取资源,而另一个用于取相对于classpath的资源,用的是绝对路径

    在使用Class.getResourceAsStream 时,资源路径有两种方式,一种以/开头,则这样的路径是指定绝对路径,如果不以/开头,则路径是相对于这个class所在的包的。在使用ClassLoader.getResourceAsStream时,路径直接使用相对于classpath的绝对路径。

    举例,下面的三个语句,实际结果是一样的

    com.explorers.Test.class.getResourceAsStream("abc.jpg") 

    com.explorers.Test.class.getResourceAsStream("/com/explorers/abc.jpg") 

    ClassLoader.getResourceAsStream("com/explorers/abc.jpg")

    • 平时写程序的时候,很多时候提示文件找不到,而抛出了异常,现在整理如下

    1、相对路径的获得

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

       String relativelyPath=System.getProperty("user.dir");

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

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

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

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

       InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");

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

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

    2)通用方法二 (此方法和1中的方法类似,不同的是此方法必须以'/'开头)

    InputStream is=Test1.class.getResourceAsStream("/test.txt"); 

    (test.txt文件的路径为项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)

    3、web项目根目录的获得(发布之后) 

    (1)从servlet出发

    可建立一个servlet在其的init方法中写入如下语句 

    ServletContext s1=this.getServletContext(); 

    String temp=s1.getRealPath("/"); (关键) 

    结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\ (002_ext为项目名字)

    如果是调用了s1.getRealPath("")则输出D:\工具\Tomcat-6.0\webapps\002_ext(少了一个"\")

    (2)从httpServletRequest出发

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

    结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\

    4、classpath的获取(在Eclipse中获得src或者classes目录的路径)

    方法一:Thread.currentThread().getContextClassLoader().getResource("").getPath()

    eg: String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();

    System.out.println("t---"+t);

    输出:t---/E:/order/002_ext/WebRoot/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--/E:/order/002_ext/WebRoot/WEB-INF/classes/

    另外,如果想把文件放在某一包中,则可以通过以下方式获得到文件(先定位到该包的最后一级目录)

    eg String p2=JdomParse.class.getResource("").getPath(); 

    System.out.println("JdomParse.class.getResource---"+p2);

    输出: JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/ (JdomParse为src目录下jdom包中的类)

    5、属性文件的读取:

    方法一:

    InputStream in = lnew BufferedInputStream( 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


    public class FileTest {
        public static void main(String[] args) {
            System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));
            System.out.println(FileTest.class.getClassLoader().getResource(""));
            System.out.println(ClassLoader.getSystemResource(""));
            System.out.println(FileTest.class.getResource(""));
            System.out.println(FileTest.class.getResource("/")); // Class文件所在路径
            System.out.println(new File("/").getAbsolutePath());
            System.out.println(System.getProperty("user.dir"));
        }
    }

    输出结果:

    file:/E:/workspace/JavaStudy/bin/ 

    file:/E:/workspace/JavaStudy/bin/ 

    file:/E:/workspace/JavaStudy/bin/ 

    file:/E:/workspace/JavaStudy/bin/test/ 

    file:/E:/workspace/JavaStudy/bin/ 

    E:\ 

    E:\workspace\JavaStudy

    参考地址:http://blog.csdn.net/ak913/article/details/7399056

    • Java获取服务器路径

      1. String contextPath = request.getContextPath();      
      2. String realPath = request.getSession().  
      3.                 getServletContext().getRealPath("/");      
      4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+  
      5.                 request.getServerPort()+contextPath+"/";  

    说明

    contextPath =”/项目名称”; //获取的是项目的相对路径

    realPath = F:\tomcat_home\webapps\项目名称\ //获取的是项目的绝对路径(Tomcat服务器中项目所在目录)

    basePath = http://localhost:8080/项目名称/ //获取的是服务的访问地址(浏览器中访问地址)

    String serviceRoot = request.getScheme()+"://"+request.getServerName()+":"

    +request.getServerPort()+request.getContextPath()+"/";

    参考地址:http://blog.csdn.net/clyao_123456/article/details/51098479
    展开全文
  • 主要介绍了JAVA获取文件绝对路径的方法,涉及针对文件路径的操作技巧,需要的朋友可以参考下
  • java获取配置文件路径

    千次阅读 2019-08-16 11:51:22
    项目中需要定时修改配置文件,但发现修改的是class的配置文件,如果这样的话重启后重新编译配置文件又变回原来的样子,所以我既要获取项目代码配置文件路径,又要获取工作中class配置文件路径,记录一下。...
  • java 获取文件路径

    2017-03-03 14:57:10
    第一种:获取当前类的所在工程路径,; System.out.println(this.getClass().getResource("").getPath());运行结果: /D:/word/xxx/Validate/bin/gov/xxx/commons/text/第二种:获取当前类的绝对路径,加”/”; ...
  • Java获取资源文件路径

    千次阅读 2019-10-21 10:26:47
    Java路径  Java中使用的路径,分为两种:绝对路径和相对路径。具体而言,又分为四种:  一、URI形式的绝对资源路径  如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.b  URL是URI的特例。URL的前缀/...
  • 今天小编就为大家分享一篇完美解决Java获取文件路径出现乱码的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Java获取文件路径

    2020-01-19 10:55:39
    Java中使用的路径,分为两种:绝对路径和相对路径。具体而言,又分为四种: 一、路径分类 1、URI形式的绝对资源路径 如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.b URL是URI的特例。URL的前缀/...
  • Java获取当前项目文件路径

    万次阅读 2018-11-18 13:44:01
    1.获取当前项目的实际路径 String path = System.getProperty("...2.获取项目配置文件信息(application.yml) InputStream is = JwtUtil.class.getResourceAsStream("/application.yml")...
  • java获取编译文件路径

    千次阅读 2013-09-11 13:04:57
    后台java获取编译文件路径 String path = this.getClass().getClassLoader().getResource("").getPath(); 这个是获取此文件编译后的路径地址 String root = ServletActionContext.getServletContext()....
  • Java获取当前项目文件路径、项目编译路径第一种:获取当前类的所在工程(编译)路径如果不加“/”,获取当前类的绝对路径第二种:获取当前类的所在工程路径第三种:获取当前工程src目录下selected.txt文件的路径第四...
  • 获取文件文件路径的几种方式 // 1.获取当前文件所在的路径 System.out.println(this.getClass().getResource("").getPath()); // 2.获取再 target 下 classpath 路径 System.out.println(this.getClass().get...
  • 动态获取java中的文件路径

    千次阅读 2017-08-19 09:58:35
    根据上一篇升级来的: java中动态的读取src下面的配置文件,动态的读取...文件路径工具类: package com.lan.FilePath; public class FilePath {  //当前的工程下的路径  public static String getProjectPath()  {
  • java项目获取文件路径总结

    万次阅读 2016-03-22 16:04:13
    java获取文件路径的方式比较多,总结可能有疏漏。 1、java.lang.System.getProperty(String key)System.getProperty("user.dir")这个方法的作用可以获取当前工程的根目录。 ![我的一个项目]...
  • 主要介绍了Java获取文件路径及常见问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Java获取文件路径/项目路径的方式

    千次阅读 2015-10-26 11:40:17
    在jsp和class文件中调用的相对路径不同。 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/...另:在Jsp,Servlet,Java中详细获得路径的方法! 1.jsp中取得路径:  以工程名为TEST为例: 
  • 下面小编就为大家带来一篇基于JAVA文件获取路径及WEB应用程序获取路径的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 获取java文件路径 使用System.getProperty("user.dir"),该语句作用是返回用户的当前工作目录 ,这样说可能还很模糊,实测了一下返回的是当前项目的绝对路径。当你需要获取项目java文件的路径时,只需要在后面添加上...
  • 从标题中也可以知道这篇是写通过递归去遍历去获取所有文件的路径和文件名称,下面我就说说遍历获取所有文件路径和名称的思路: 第一步:将字符串路径转换为文件格式,再传入函数进行遍历; 第二步:遍历 files的...
  • java获得当前文件路径

    千次阅读 2017-07-01 15:51:02
    java获得当前文件路径第一种:File f = new File(this.getClass().getResource("/").getPath());System.out.println(f);结果:C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin获取当前类的...
  • java获取文件路径的父目录

    万次阅读 2016-11-21 10:32:20
    java获取文件路径的父目录的较好方法如下, 不要用indexOf("\\")或indexOf("/")然后截断的方法。 File file = new File("a.txt"); String parentPath = file.getParent(); // null File parentDir = file....
  • Java 文件路径的读取

    千次阅读 热门讨论 2014-08-10 00:42:46
    文件读取有两种方式,当然这在各编程语言中也是通用的,所以java路径也分,相对 和绝对路径。 绝对路径 绝对路径URI ,听着和URL很相似,那我们就来看看吧。 URI(Uniformresource Identifier)统一资源标示符.URL统一资源...
  • Java获取文件路径的几种方式。 关于绝对路径和相对路径

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 603,131
精华内容 241,252
关键字:

获取java文件路径

java 订阅