eclipse下的文件路径问题
来源:互联网 发布:甩手工具箱和淘宝助理 编辑:程序博客网 时间:2024/04/27 19:19
一个java工程,文件路径等设置如下:
project -src
-org
-test
-test.java
test.properties
-bin
-org
-test
-test.java
test.properties
其中在test.java中要载入test.properties文件。但是在eclipse中直接运行时说
java.io.FileNotFoundException: test.properties
我在test.java中的路径指定的是:test.properties
test.properties就在src目录之下。
但是我在外面通过命令行的形式运行 java org.test.test 是可以正常运行的,这是什么原因,如果我把test.properties直接放在工程下面就可以在eclipse里面正常运行,但是命令行的形式又说找不到文件了。
好像是鱼和熊掌不可兼得:(
有没有什么解决方法?有一点要明确地是:程序中只能写相对路径。
_________________________________________________________________________________________
(1)解决办法一:
你应该把test.properties放在那工程的下面!
或者如果你放到了src下``获取文件的路径的时候就应是 new File( "bin/test.properties ")了
(2)解决办法二:
采用:ClassLoader.getSystemResource("test.properties");
可以正确获得资源文件test.properties的绝对路径,例如:
“file:/D:/JworkSpace/RMIbasedDistributedDTIN/bin/test.properties”,因此,也就能够正确地定位资源文件了!
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
附:
通用的相对路径解决办法
面对这个问题,我决定编写一个助手类ClassLoaderUtil,提供一个便利方法[public static URL getExtendResource(String relativePath)]。在Web应用程序等一切Java程序中,需要定位classpath外的资源时,都使用这个助手类的便利方法,而不使用 Web应用程序特有的ServletContext.getRealPath( "/ ")方法来定位资源。
利用classpath的绝对路径,定位所有资源
这个便利方法的实现原理,就是“利用classpath的绝对路径,定位所有资源”。
ClassLoader类的getResource( " ")方法能够得到当前classpath的绝对路径,这是所有Java程序都拥有的能力,具有最大的适应性!
而目前的JDK提供的ClassLoader类的getResource(String 相对路径)方法,只能接受一般的相对路径。这样,使用ClassLoader类的getResource(String 相对路径)方法就只能定位到classpath下的资源。
如果,它能够接受“../”这样的参数,允许我们用相对路径来定位classpath外面的资源,那么我们就可以定位位置的资源!
当然,我无法修改ClassLoader类的这个方法,于是,我编写了一个助手类ClassLoaderUtil类,提供了[public static URL getExtendResource(String relativePath)]这个方法。它能够接受带有“../”符号的相对路径,实现了自由寻找资源的功能。
project
其中在test.java中要载入test.properties文件。但是在eclipse中直接运行时说
java.io.FileNotFoundException:
我在test.java中的路径指定的是:test.properties
test.properties就在src目录之下。
但是我在外面通过命令行的形式运行
好像是鱼和熊掌不可兼得:(
有没有什么解决方法?有一点要明确地是:程序中只能写相对路径。
_________________________________________________________________________________________
(1)解决办法一:
你应该把test.properties放在那工程的下面!
或者如果你放到了src下``获取文件的路径的时候就应是 new
(2)解决办法二:
采用:ClassLoader.getSystemResource("test.properties");
可以正确获得资源文件test.properties的绝对路径,例如:
“file:/D:/JworkSpace/RMIbasedDistributedDTIN/bin/test.properties”,因此,也就能够正确地定位资源文件了!
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
附:
通用的相对路径解决办法
面对这个问题,我决定编写一个助手类ClassLoaderUtil,提供一个便利方法[public
利用classpath的绝对路径,定位所有资源
这个便利方法的实现原理,就是“利用classpath的绝对路径,定位所有资源”。
ClassLoader类的getResource( " ")方法能够得到当前classpath的绝对路径,这是所有Java程序都拥有的能力,具有最大的适应性!
而目前的JDK提供的ClassLoader类的getResource(String
如果,它能够接受“../”这样的参数,允许我们用相对路径来定位classpath外面的资源,那么我们就可以定位位置的资源!
当然,我无法修改ClassLoader类的这个方法,于是,我编写了一个助手类ClassLoaderUtil类,提供了[public
阅读全文
0 0
- eclipse下的文件路径问题
- eclipse下的文件路径问题
- eclipse下tomcat上传文件路径的问题
- eclipse 利用windows资源管理器打开当前文件所在目录 | eclipse下的Java工程路径问题
- eclipse 文件路径问题
- Eclipse 下 Applet 的路径问题
- 关于eclipse里的jsp编译文件路径问题
- eclipse下的links文件配置问题
- eclipse编辑器下显示文件路径
- IE和Firefox下的文件路径问题
- Tomcat环境下,java读取XML文件的路径问题
- 获取apusic下class文件路径的问题
- Linux和window下的文件路径问题
- Windows环境下Python代码的文件路径问题
- Java项目下exe文件的路径问题及运行
- WEB-INF下jsp文件的路径问题
- Linux和window下的文件路径问题
- Linux下MySQL的my.cnf文件路径问题
- Hibernate中常用HQL
- 哈哈,我又回来了!
- 技术要求与面试
- 常用API—Date Calendar System Math
- 插入排序算法
- eclipse下的文件路径问题
- hdu1423 Lics
- HDU 6143 Killer Names
- pandas
- scrapy安装过程中遇到的问题及解决
- PL/SQL ,存储过程,函数,触发器
- 编程语言学习(未完待续)
- 百练 打印日历(日期问题)
- 用深层LSTM实现简单的自然语言建模