java相对路径设置

在java中相对路径的设置是一个比较头痛的问题:配置文件应该写在哪里,"/","./"等各自代表着什么含义,普通的java工程和jsp(servlet)的路径有什么不同,这都是我们特别需要留意的。不然在程序开发中会死得很惨(个人以前深有体会,看似很简单的路径设置,往往要花很多的时间才能搞定)。

一、Java Project

1. 普通目录的读取

如果com.taobao.jifeng下的TestPath.java要读取jifeng文件夹下的file.txt文件,路径设置为

[c-sharp] view plaincopy

  1. File file = new File("jifeng/file.txt");

ps:在这里“jifeng/file.txt”就是从该工程首目录开始的,而“/”开始表示的是绝对路径,“./jifeng/file.txt”的作用和“jifeng/file.txt”的路径设置时相同的

2. 读取properties文件

从TestProperties.java读取与它同目录下的config.default.properties文件,在java工程中properties的配置文件是被当做跟*.java文件一样使用的。

[c-sharp] view plaincopy

  1. Properties properties = new Properties();
  2. InputStream is = null;
  3. is = TestProperties.class.getResourceAsStream("/com/taobao/jifeng/properties/config.default.properties");
  4. try {
  5. properties.load(is);
  6. String key = "name";
  7. System.out.println(properties.getProperty(key));
  8. } catch (IOException e) {
  9. // TODO Auto-generated catch block
  10. e.printStackTrace();
  11. }

properties文件的具体操作可以参见:java中的Properties文件操作使用举例

ps:properties文件的读取方式大致是相同的,无论是javaproject,servlet等

二、可运行的jar文件

文件位置

[c-sharp] view plaincopy

  1. File file = new File("jifeng/file.txt");

三、Servlet(JSP),服务器是JBOSS

1. 页面之间的跳转,加入工程名为WebAndesProject,情况一和情况二相等

情况一

[c-sharp] view plaincopy

  1. <form action=/"./GetResultJSON/">" +
  2. "</form>"

情况二:

[c-sharp] view plaincopy

  1. "<form action=/"/WebAndesProject/GetResultJSON/">" +
  2. "</form>"

在servlet或jsp中“/”表示的jboss的总目录,"./"表示的是jboss下面该工程的目录,servlet路径可设置

2. 读取文件

文件位置:

servlet的获取其绝对路径的写法:

[c-sharp] view plaincopy

  1. String path = request.getRealPath("config/config.default.properties");

四、log4j中路径的设置

Log4J的位置,在myeclipse开发时

log4j.properties中的内容:

[c-sharp] view plaincopy

  1. log4j.appender.log = org.apache.log4j.DailyRollingFileAppender
  2. log4j.appender.log.File = hp/log.log
  3. log4j.appender.log.Append = true
  4. log4j.appender.log.Threshold = INFO
  5. log4j.appender.log.DatePattern=‘.‘yyyy-MM-dd
  6. log4j.appender.log.layout = org.apache.log4j.PatternLayout
  7. log4j.appender.log.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t ] %m%n

正式部署到jboss时,日志生成会在jboss/bin/hp/log.log目录下

时间: 2024-10-07 23:14:37

java相对路径设置的相关文章

java环境变量设置与java查看安装路径

把jdk安装到计算机中之后,我们来进行设置使java环境能够使用. 首先右键点我的电脑.打开属性.然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量需要设置三个属性“JAVA_HOME”. “path”.“classpath”,其中在没安装过jdk的环境下.path属性是本来存在的.而JAVA_HOME和classpath是不存在 的. 一:点“新建”,然后在变量名写上JAVA_HOME,顾名其意该变量的含义就是java的安装路径,呵呵,然后在变量值写入刚才 安装的路径“C:\jdk

java 环境变量设置

jdk1.4之后版本不需要设置Classpath变量. 如果在Classpath变量中没有添加当前路径,即 [.](无括号),在命令行中运行 java Helloworld 会出现错误: Error: Could not find or load main class Helloworld 这是由于指定了Classpath变量的值,JRE按照指定的路径来搜索java类,这其中并不包含当前文件夹路径,故出现错误. 解决方法: 1. 命令行增加参数 -cp 临时将当前路径加入到JRE搜索路径中: j

Java文件路径

几大常用的方法 Class.getResource("")    返回的是当前Class这个类所在包开始的位置 getClassLoader().getResource("")  ||   Class.getResource("/")   返回的是classpath的位置 getClassLoader().getResource("/")  错误的!! 注: CLASSPATH是什么?它的作用是什么? 它是javac编译器的一

Windows下Java环境变量设置

应工作需要,接触到J2EE,现将Java环境变量设置笔记如下: 1.打开我的电脑–>属性–>高级–>环境变量 2.新建 系统变量   JAVA_HOME 和 CLASSPATH 变量名:JAVA_HOME 变量值:d:\Java\java\jdk1.6.0_45    (注意:物理路径末尾不要加 “\”) 变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 3. 选择“系统变量 ”中变量名为“Path

Tomcat设置默认启动项目及Java Web工程设置默认启动页面

Tomcat设置默认启动项目 Tomcat设置默认启动项目,顾名思义,就是让可以在浏览器的地址栏中输入ip:8080,就能访问到我们的项目.具体操作如下: 1.打开tomcat的安装根目录,找到Tomcat 6.0\conf\server.xml,打开该文件,找到<Host>节点,在该节点中添加<Context path="" docBase="../webapps/WebTest" debug="0" reloadable=&

JDK安装时的路径设置

安装java时路径都按默认,三个变量如下,如果不是默认安装,要将下面相对应的路径改过来 将变量path 改为 C:\Program Files\Java\jdk1.6.0_05\bin 再添加变量JAVA_HOME 路径为 C:\Program Files\Java\jdk1.6.0_05 添加变量CLASSPATH 路径为 C:\ProgramFiles\Java\jdk1.6.0_05\lib\tools.jar;dt.jar;C:\Program Files\Java\jre1.6.0_0

关于JDK 安装,以及Java环境的设置

关于JDK 安装,以及Java环境的设置 1.下载JDK1.6,选择对应的安装路径 2.配置相应的Java 环境变量 A.属性名称:JAVA_HOME 属性值:C:\Program Files\Java\jdk1.6.0_02 B.属性名称:PATH 属性值:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin C.属性名称:CLASSPATH 属性值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 要加.表示当前路径,另

XCode环境变量及路径设置

一般我们在xcode里面配置包含工程目录下头文件的时候,都要关联着相对路径和绝对路径,如果只是自己用这个项目,用绝对路径的问题不大,但是如果你把工程发给别人,别人就要在改这个绝对路径,这时候绝对路径的缺点立马出现. 所以在修改User Header Search Paths这个选项的时候使用"$(SRCROOT)/当前工程名字/需要包含头文件所在文件夹"将上面的双引号里面的字符串拷贝之后,你会发现这个“$(SRCROOT)”,会自动变成当前工程所以的目录. 这样就可以了,发给别人,别人

java 包路径

<aop:config> <aop:pointcut id="abc" expression="execution(* *..Book.save(..))"/> </aop:config> 或者 <context:component-scan base-package="com.bky.service..*" /> 都会用到* *..Book.save(..) 或com.bky.service..*