为了获得web-app目录中的.properties文件,需要先取得web-app的WEB-INF目录,网上有很多的方法,大致描述如下:
1、java程序中中获得
System.out.println("1"+Thread.currentThread().getContextClassLoader().getResource(""));
System.out.println("2"+TestPath.class.getResource(""));
System.out.println("3"+TestPath.class.getResource("/"));
System.out.println("4"+TestPath.class.getClassLoader().getResource(""));
System.out.println("5"+ClassLoader.getSystemResource(""));
System.out.println("6"+TestPath.class.getClassLoader().getResource("src.com.2hei.net.util"));
System.out.println("7"+new File("").getAbsolutePath());
2、在jsp中获得web-app目录
根目录:request.getRequestURI()
文件的绝对路径 :application.getRealPath(request.getRequestURI());
当前web应用的绝对路径 :application.getRealPath("/");
3、Servlet中获得当前应用的相对路径和绝对路径
根目录:request.getServletPath();
文件的绝对路径 :
javax.servlet.http.HttpSession.getServletContext()
request.getSession().getServletContext().getRealPath
当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");
但是我遇到的问题是使用java来获得web-app目录始终得到的是容器的root目录,比如我使用的是resin3.1.6,使用java程序获得的目录始终都是/home/resin-3.1.6。
想尽了办法,把caucho.com的文档翻了个遍,也尝试了class-loader等resource等配置,始终无法配置好,我又不想使用jsp或者servlet来获取,于是想到了如下的土办法。
resin.conf 或者resin.xml中配置(详见resin-doc)
<env-entry>
<env-entry-name>greeting</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>I‘m 2hei</env-entry-value>
</env-entry>
调用方法:
public void init()
throws ServletException
{
try {
Context env =
(Context) new InitialContext().lookup("java:comp/env");
greeting = (String) env.lookup("greeting");
} catch (NamingException e) {
throw new ServletException(e);
}
}
然而,见证奇迹的时刻终于到来了!
现有java文件编译后是给打成了jar包来进行发布,放到了WEB-INF/lib目录中,这样使用java获得的web-app位置就是resin的home目录
我尝试不打jar包,将class放到WEB-INF/classes中,使用java来获取应用程序的绝对路径居然可以了,真不知道resin是如何加载jar包的。汗ing。。。
分享到:
相关推荐
- 需要注意的是,这种方式同样只能获取到类路径中的资源。 #### 注意事项 - **使用相对路径时**,务必确保路径的正确性,否则可能会导致无法找到文件的情况发生。 - **使用绝对路径时**,虽然可以更精确地定位...
在Java Web开发中,理解和掌握相对路径与绝对路径的运用是至关重要的,因为这直接影响到资源定位、页面跳转以及文件读写等操作的正确性。以下是对Java Web中相对路径与绝对路径问题的深入总结: ### 一、路径概念与...
综上所述,在Java中获取各种路径的方法有很多,选择哪种方法取决于具体的应用场景和需求。在Web应用开发中,推荐使用`request.getRealPath`或`ServletContext`的`getRealPath`方法来获取绝对路径;而在一般的Java...
在Java编程中,路径是访问文件或资源的关键。路径分为绝对路径和相对路径两种类型,它们各有不同的用途和特点。 绝对路径是指从根目录开始的完整路径,它明确指定了文件或目录的确切位置。例如,`file:/D:/java/...
- **实现细节**: 每个个体由5个基因组成,表示路径中的城市顺序。通过循环遍历并调用`inialPop`方法为每个个体生成一个不重复的5个城市序列。 **2. 个体初始化 (inialPop)** - **功能**: 生成一个包含5个城市序号的...
在Java编程中,获取JDK(Java Development Kit)的安装路径是常见的需求,尤其是在系统配置、依赖管理和自动化脚本中。下面将详细讲解如何通过环境变量和正则表达式匹配来实现这一目标。 首先,我们需要了解Java的...
通过上述介绍可以看出,在Java中获取文件路径的方法多种多样,每种方法适用于不同的场景。掌握这些技巧对于编写高效、稳定的Java应用程序至关重要。在实际开发过程中,可以根据具体需求选择最适合的方法来获取文件...
在Java Web应用中,路径的解析方式取决于它所在的上下文环境。主要分为两大类:服务器端路径和客户端路径。 ### 服务器端路径 **服务器端路径**是指在服务器端进行解析的路径,这类路径主要用于内部资源的引用,...
下面我们将详细讨论如何在Java中通过文件操作来解决最短路径问题。 首先,我们需要了解最短路径算法。其中,Dijkstra算法和Floyd-Warshall算法是两种常用的方法。Dijkstra算法适用于单源最短路径问题,而Floyd-...
如果传入的是"."或"..",`getCanonicalPath()`会理解其含义,而`getAbsolutePath()`则会将其原样添加到路径中。 3. `File.getPath()`: 这个方法返回的是你在创建`File`对象时传递的原始路径字符串,不论它是相对...
关键路径是所有可能路径中持续时间最长的,任何延误会直接影响项目的总完成时间。 在Java中实现AOE网络求关键路径,我们可以采用以下步骤: 1. **数据结构设计**:创建节点类(Activity)表示活动,包含活动名称、...
在Java Web开发中,路径问题是一个常见的挑战,尤其是在处理JSP页面、Servlet以及web.xml配置文件时。理解和正确使用路径对于构建稳定、高效的应用程序至关重要。以下是对标题和描述中提及的知识点的深入探讨。 ###...
1、利用System.getProperty()函数获取当前路径: System.out.println(System.getProperty(user.dir));//user.dir指定了当前的路径 2、使用File提供的函数获取当前路径: File directory = new File(&#...
在Java中实现路径规划问题,通常涉及到图的搜索算法,如Dijkstra算法、A*搜索算法等。这些算法可以帮助找到从起点到终点的最短路径或者最优路径。下面我将提供一个使用Dijkstra算法解决路径规划问题的Java示例。 在...
首先,我们可以通过`java.lang.Class`类的`getResource`或`getResourceAsStream`方法来获取类路径中的资源文件路径。这两个方法都是在类路径中查找资源,返回一个URL对象,从中可以获取路径信息。例如,如果我们有一...
这个方法会返回当前工程的规范路径,例如它会解析路径中的“.”和“..”等符号。除此之外,还可以使用System类的getProperty方法获取环境变量“user.dir”,它代表的是当前JVM的运行目录,这个目录通常与工程目录...
在Java编程中,文件路径处理是一项常见的任务,但当路径中包含中文字符或特殊字符时,可能会遇到乱码问题。本文将深入探讨这个问题,并提供一个简单的解决方案。 首先,我们需要理解为什么会发生路径乱码。Java在...
选择合适的方法取决于你是否需要访问类路径中的资源,或者只是简单地获取文件系统的文件路径。在进行文件操作时,确保正确处理路径是非常重要的,因为错误的路径可能导致文件找不到或者出现其他运行时错误。
Java最短路径软件是一款利用Swing图形用户界面(GUI)技术开发的应用程序,其核心功能是计算图中的最短路径问题。在计算机科学领域,最短路径问题是一个经典的图论问题,广泛应用于网络路由、地图导航、物流规划等多...