0 0

怎样取得 WEB-INF/classes的路径?15

用 eclipse和tomcat开发,要修改WEB-INF/classes下的一个配置文件,在开发环境(eclipse和tomcat)测试的时候能够读取、修改,但是把该项目发布到was6上的时候,就报‘系统找不到指定的路径,;

程序是这样写的:
public static void writeKeyData(String key, String value) {
String PROPERTY_FILE = "/com/ts/config/ts.properties";
  Properties prop = new Properties();
try {

File file = new File(loadProp.getClass().getResource("/").getPath());
file = new File(file.getPath() + PROPERTY_FILE);

if (!file.exists())
file.createNewFile();
InputStream fis = new FileInputStream(file);
prop.load(fis);
fis.close();

prop.setProperty(key, value);
OutputStream fos = new FileOutputStream(file.getPath());
prop.store(fos, null);
fos.close();
} catch (IOException e) {
e.printStackTrace();;
System.err.println("Visit " + PROPERTY_FILE + " for updating "
+ value + " value error");
}
}

发布到was6上运行时‘InputStream fis = new FileInputStream(file); ’报系统找不到指定的路径,;
was6是怎样取得WEB-INF/classes的路径的呢???? 望各位指教。。。

问题补充:
在eclipse和tomcat运行的时候,路径是可以指到.../WEB-INF/classes下的

而发布到was6上时,路径就指到../profiles/AppSrv01/properties/ 去了,就找不到文件了。

cwx714 和qtalen 的在WAS上似乎都得不到路径
问题补充:
问题解决了  谢谢各位的解答


最终找到的方法是:

ClassPathResource resource = new ClassPathResource(PROPERTY_FILE);
String path=null;
try {
path=resource.getURL().getPath().replace("20%", "");
} catch (Exception e) {
System.out.println(e.toString());
}
2010年1月06日 12:39

6个答案 按时间排序 按投票排序

0 0

这样的写法在WAS中是正确的,可以取得对应的资源文件。

引用
File file = new File(loadProp.getClass().getResource("/").getPath());
file = new File(file.getPath() + PROPERTY_FILE);

这里想问的是loadProp是什么对象,其运行时又是什么?
为什么不写为
file = new File(getClass().getResource("/"+PROPERTY_FILE).getPath());

2010年1月07日 11:40
0 0

如果路径有空格(我不知道其他特别字符会不会有问题),会有问题的。用getResource("/").getPath()取到的路径,如果里面有空格会转换成%20, 就是unicode码了,在读文件的时候,得把%20重新换成空格,这样才能读取到文件。

2010年1月06日 20:03
0 0

InputStream f = your Object.class.getResourceAsStream(PROPERTY_FILE);

是这样吧/?

2010年1月06日 18:29
0 0

换成
loadProp.getClass().getClassLoader().getResource("/").getPath()
试试

2010年1月06日 13:59
0 0

String path = Thread.currentThread().getContextClassLoader().getResource("/").getPath(); 

2010年1月06日 13:43
0 0

WEB-INF/classes就是传说中的src路径.

2010年1月06日 13:15

相关推荐

    Maven打包,指定classes路径

    以上就是关于"Maven打包,指定classes路径"的知识点,主要涉及到Maven的资源配置和插件定制。理解并掌握这些配置可以帮助开发者更高效地管理和构建Java Web应用。同时,记得在实际项目中根据实际情况调整`pom.xml`,...

    jira4.4.1汉化插件

    将插件复制到JIRA安装路径下 WEB-INF/lib 3.JIRA 系统插件中文文件: a.下载并解压 atlassian-bundled-plugins_4.4.zip b.用winRAR打开 WEB-INF/classes/atlassian-bundled-plugins.zip c.将附件中的中文文件...

    获取类路径下资源

    所谓java中的类路径是告诉java解释器和javac编译器去哪里找它们要执行或导入的类。类(包括class文件)可以存储在目录或jar...而类路径对一个javaweb应用而言,就是WEB-INF/classes下和WEB-INF/lib目录下的所有jar文件。

    java web笔试题集锦经典2011年8月经典笔试题

    (D) helloapp/WEB-INF/classes/org/javathinker/HelloServlet.class (3)假设在helloapp应用中有一个HelloServlet类,它在web.xml文件中的配置如下: <servlet-name> HelloServlet </servlet-name> <servlet-class...

    WEB 项目中JAVA取得WEBROOT物理路径

    在Java Web开发中,获取WEB-INF目录或者更广泛的WEBROOT(Web应用的根目录)的物理路径是一项常见的需求。这通常涉及到服务器环境变量、Servlet API的使用以及对Web应用部署结构的理解。以下将详细讲解如何在Java中...

    轻松学Java_Web开发之Struts_2配置详解.pptx

    外部配置文件则由开发人员编写,如`web.xml`、`struts.xml`和`struts.properties`,它们位于`WEB-INF`或`WEB-INF/classes`目录下。 `web.xml`是Web应用的标准部署描述符,它包含了所有必需的框架组件。在Struts 2中...

    javaweb 读取 classes 下的文件

    在Java Web开发中,有时我们需要从应用程序的`classes`目录或者对应的`WEB-INF/classes`目录中读取资源文件,例如配置文件、静态内容或者数据库连接字符串等。这通常发生在我们想要在运行时加载非代码的资源,而这些...

    JavaWeb_servlet(11)_ 通过 ServletContex 获得类路径下的文件路径

    例如,如果你有一个配置文件位于`WEB-INF/classes/config.properties`,你可以使用如下的代码来获取其实际路径: ```java ServletContext context = getServletContext(); String filePath = context.getRealPath(...

    二开说明1

    * 文件路径:/WEB-INF/classes/com/whir/ezoffice/form/ 该知识点涉及到Java中的类文件上传和处理,通常情况下,类文件用于实现业务逻辑和数据处理。在这里,上传类文件是为了实现流程表单的处理和提交。 4. 新增...

    struts2配置文件改变位置问题

    确保配置文件的路径相对于`WEB-INF/classes`是可访问的,这样才能使Struts2成功读取并解析配置,从而正常运行应用程序。 总结一下,当遇到Struts2配置文件位置更改问题时,应遵循以下步骤: 1. 确保新的`struts....

    基于SpringMvc的云音乐网站

    2、设置数据库参数 配置文件位于 apache-tomcat/webapps/CloudMusic/WEB-INF/classes/dbConfig.properties 3、终端启动服务器 ``` cd apache-tomcat ./bin/catalina.sh run ``` 运行成功后,浏览器打开 ...

    CXF发布WebService的多种方法实例

    该websevice项目发布方式 ...//下面2种是发布到web服务器... 手动放在src下,默认发布到web服务器的路径为WEB-INF/classes/xxx.wsdl ps:发布到服务器的WebService地址为:http://localhost:8080/CXFDemo/HelloCXF?wsdl

    log4j.properties文件放置在其它目录下

    在 Tomcat 中,log4j.properties 文件通常被放在 src 目录下,这样系统自动会找到该文件的路径是在 WEB-INF/classes 文件下,该目录在 classpath 下,所以直接就能找到。但是,如果我们想把 log4j.properties 文件...

    Activiti7+Tomcat8 已整合好的zip包

    个人整合好一套web流程设计器,修改压缩包内/apache-tomcat-8.5.100/webapps/activiti-app/WEB-INF/classes/META-INF/activiti-app路径下的activiti-app.properties文件中的数据库连接语句,启动tomcat即可

    将jsp生成java然后反编译为class然后打入jar

    生成的Java文件通常位于WEB-INF/classes目录下,其类名基于JSP文件的URL路径,并带有_JSPServlet后缀。 例如,一个名为"index.jsp"的文件会被转化为"org_yourdomain_yourapp_index_jsp.java"。这个Java类继承自...

    Ant编译实例详解[收集].pdf

    在build.xml配置文件中,定义了项目属性,如src、jsp和dist的路径,并创建了classpath路径集,包含了系统的环境变量和classes路径。此外,文件还定义了help、init、compile、build和clean等目标,以实现不同的构建...

    基于Tomcat5.0的SSL双向调用

    服务类需要被编译成class文件,并将其copy到%AXIS_HOME%/webapps/axis/WEB-INF/classes/包路径/目录下。 四、配置文件deploy.wsdd deploy.wsdd是AXIS的配置文件,用于描述服务的发布信息。在这个文件中,需要指定...

    javaEE-web的文件路径

    需要注意的是,这种方法在Web应用中可能指向`WEB-INF/classes`或`WEB-INF/lib`中的JAR内的资源,具体取决于资源的位置。 为了更好地处理Web应用中的文件路径,理解Servlet上下文(ServletContext)的概念也很关键。...

    Tomcat安装_配置.doc

    - /WEB-INF/classes:应用程序的类路径根。 - /WEB-INF/lib:存放应用程序所需的库文件。 测试Tomcat是否安装成功,可以在浏览器中输入http://localhost:8080/,如果看到Tomcat的启动页面,说明安装无误。此外,...

    rocketmq-console.war

    修改WEB-INF/classes/config.properties相关配置,访问路径为ip:port/rocketmq-console/cluster/list.do

Global site tag (gtag.js) - Google Analytics