`
jspine
  • 浏览: 101975 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java中取路径的方法

阅读更多

为了获得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中File的相对路径与绝对路径总结

    java web中File的相对路径与绝对路径总结,用于在运行时获取配置文件、动态加载对象等

    Java中获取当前路径的几种方法总结

    主要介绍了Java中获取当前路径的几种方法总结的相关资料,需要的朋友可以参考下

    java获取当前路径的几种方法

    1、利用System.getProperty()函数获取当前路径:  System.out.println(System.getProperty(user.dir));//user.dir指定了当前的路径  2、使用File提供的函数获取当前路径:  File directory = new File&#40;&#...

    Java 编写的AOE网络求关键路径

    有良好界面的JAVA编写的AOE网络求取关键路径,比较完善

    Java实现路径规划问题

    在Java中实现路径规划问题,通常涉及到图的搜索算法,如Dijkstra算法、A*搜索算法等。这些算法可以帮助找到从起点到终点的最短路径或者最优路径。下面我将提供一个使用Dijkstra算法解决路径规划问题的Java示例。 在...

    路径规划问题 Java实现示例

    在Java中实现路径规划问题,通常涉及到图的搜索算法,如Dijkstra算法、A*搜索算法等。这些算法可以帮助找到从起点到终点的最短路径或者最优路径。下面我将提供一个使用Dijkstra算法解决路径规划问题的Java示例。 在...

    (有向)带权图的单源点最短路径算法(java源码)

    /* * (有向)带权图的单源点最短路径算法... if (w.getDistance() &gt; v.getDistance() + weight) {//取原距离与新距离中的小者 w.setDistance(v.getDistance() + weight); w.setBFSParent(v); } } } }

    java源码包---java 源码 大量 实例

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    多条最短路径 Java实现

    书本上的算法只是给出了最短距离的求法,没有给出最短路径的实现。代码在迪杰斯特拉的基础上加以改进,能求图中任意两点的最短距离和所有的最短路径(如果存在多条最短路径)。将结果存储在一个HashMap中。

    JAVA获取同一路径下所有子类或接口实现类

    import java.io.File; import java.io.IOException; import java.net.URL; import java.util.ArrayList; import java.util.List; import find.test.Intf; import find.test.Man; public class ClassUtil { ...

    java 读取Ftp指定位置的文件解析并入库

    jakarta-oro.jar commons-net-1.4.1.jar 博文链接:https://firezhfox.iteye.com/blog/1913128

    java源码包2

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    java源码包4

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    java代码在window获取linux文件

    java代码利用Jsch实现在windows平台获取linux服务器文件,已包含 jsch jar包

    JAVA上百实例源码以及开源项目源代码

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    java源码包3

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    JAVA上百实例源码以及开源项目

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    java调用摄像头保存图片

    java调用摄像头保存图片,通过Face++和Javacv判断如果视频中含有人脸,保存图片到本地指定路径!

    java jdk8 学习笔记

    C:\lib\abc.jar 指定jvm寻找.class文件路径的方法有三种,分别是从当前目录下寻找、某个文件夹下寻找或在链接库的jar文件中寻找。 同样,使用命令行指定classpath的方式优先于从系统读取classpath环境变量。 7...

    JAVA面试题最全集

    在JSP中如何读取客户端的请求,如何访问CGI变量,如何确定某个Jsp文件的真实路径。 4.描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。 5.列出Jsp中包含外部文件的方式,两者有何区别。 6....

Global site tag (gtag.js) - Google Analytics