社区
Java SE
帖子详情
web工程普通类获取路径问题
believefym
2005-11-06 06:09:53
servlet的话可以通过servletContext.getRealPath("/");获得
但是工程里普通的类如何获取呢?
...全文
838
17
打赏
收藏
web工程普通类获取路径问题
servlet的话可以通过servletContext.getRealPath("/");获得 但是工程里普通的类如何获取呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yaray
2005-11-07
打赏
举报
回复
File file = new File(".");
String fullPath = file.getAbsolutePath();
再用fullPath去掉当前类的包名结构的路径,以及基础路径.如Web工程中,fullPath应该是这样的:
F:\aDir\bDir\projects\CurrentProject\WEB-INF\classes\com\yaray\tools\Tools.class
==>CurrentProject是工程根目录
需要做的就是切去\WEB-INF\classes\com\yaray\tools,楼主自己想办法吧:)
believefym
2005-11-07
打赏
举报
回复
那假如projectname/pictures/some.jpg
有一个页面要用到some.jsp的,而有一个普通类需要处理这张图片,难道只能拷贝一份到classes下面?
这样好像有点罗索啊,假如有很多需要处理的话,不是需要把projectname下面很多东西都拷贝一份过去?
shine333
2005-11-07
打赏
举报
回复
不要放到tomcat/webapps/projectname路径下,而是tomcat/webapps/projectname/WEB-INF/classes,也就是classes下面,
据我所知,几乎所有的,与安装路径无关,且不需要通过诸如-Dxxx=yyy这样jvm方式传入路径的配置文件,都是放在classpath下(包括jar文件内部),然后利用ClassLoader来getResource的
believefym
2005-11-07
打赏
举报
回复
用楼上的方法确实可以得到一个本地路径,如:
file:/D:/tomcat/webapps/0903/WEB-INF/classes/
不过有没有更简单直接一点的,
在一般的工程下"."就表示当前路径了
eclipse下,projectname/src,
projectname/classes,
不管package有几层,当前路径就是projectname了
但是在web工程下这个当前路径怎么找呢?
tomcat/webapps/projectname/WEB-INF/classes/somepackage/SomeClass.class
如何能直接定位到
tomcat/webapps/projectname路径下,使用该路径下的一个配置文件
believefym
2005-11-07
打赏
举报
回复
不是要通过io
工程下有一个类,需要用到工程根目录下的一个配置文件,怎么获取它?这个路径该怎么表示?
shine333
2005-11-07
打赏
举报
回复
当然,对于非匿名内部类,比如
class Test {
static class Inner {}
}
Class clazz = Test.Inner.class; 由于其类名不能直接replace('.', '/'),可能需要另外想办法
shine333
2005-11-07
打赏
举报
回复
你是想获得一个类的具体的path,比如classpath:C:/;D:/java, D:/java下面有一个test.Test类,最后得到D:/java/test/Test.class?
Class clazz = test.Test.class;
String name = clazz.getName().replace('.', '/');
URL url = Thread.currentThread().getContextClassLoader().getResource(name);
这个时候会得到"file:/D:/java/test/Test.class"这样的url,你只要去掉file:/即可
believefym
2005-11-07
打赏
举报
回复
楼上的方法还是不行啊
fullpath得到的是我的eclipse路径:E:\eclipse\.
shine333
2005-11-07
打赏
举报
回复
如果是同一个jvm,那最好办了,在你的servlet启动的时候,往System.setProperty,然后普通程序System.getProperty读出project_home
如果不是同一个jvm,但是是同一个机器,Servlet System.getProperty("user.home"),往里面写以一个文件,记录project_home,然后application读,
其实第二种情况下,最不用动脑筋或者普遍的方法,就是你执行这个main application一定会写一个批处理或者快捷方式的,在里面设置一下project_home,然后作为一个-Dxxx=yyyy或者args[x]参数传进去。反正你用到tomcat,肯定不会是给普通用户玩的,所以,顶多需要给你的用户的readme文档里面,提一下,如果需要改变tomcat或者webapp的发布目录,需要更改这个批处理里面的
SET PROJECT_HOME=".../.../..."
shine333
2005-11-07
打赏
举报
回复
你这个普通class运行的jvm和tomcat是不是同一个jvm?
shine333
2005-11-07
打赏
举报
回复
说错了,war不能直接classpath
shine333
2005-11-07
打赏
举报
回复
你把你的webapp目录->war文件,不就可以拉
平时普通的application,就是把这个war作为一个classpath,运行
shine333
2005-11-07
打赏
举报
回复
把所有的class和resources都打包阿
xjlz0001
2005-11-06
打赏
举报
回复
getPath()方法可以,getAbsolutePath()方法获得绝对路径。
believefym
2005-11-06
打赏
举报
回复
System.getProperty("user.dir")
-------------
这个不行,不能得到web工程的正确路径
gemouzhi
2005-11-06
打赏
举报
回复
System.getProperty("user.dir")
believefym
2005-11-06
打赏
举报
回复
up
java
获取
WEB
-INF目录绝对
路径
JSP
WEB
工程
在不用servlet的情况下如何在
普通
的java
类
中
获取
WEB
-INF的绝对
路径
呢? 如下图所示,我在
WEB
-INF目录下面放了一个文件server.xml, 我需要在
普通
的java
类
中
获取
server.xml的绝对
路径
,怎样才能
获取
...
获取
web
服务器下的文件
路径
获取
web
服务器项目的真实物理
路径
request.getSession().getServletContext().getRealPath("/"); 一 相对
路径
的获得 说明:相对
路径
(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的...
普通
JAVA
类
如何
获取
,
WEB
项目的根
路径
_百度知道
在jsp里,根目录是
Web
Root 在class文件中,根目录是
Web
Root/
WEB
-INF/classes 当然你也可以用System.getProperty("user.dir")
获取
你
工程
的绝对
路径
。 另:在Jsp,Servlet,Java中详细获得
路径
的方法! 1.jsp中取得
路径
...
java
获取
WEB
INF目录绝对
路径
java
获取
WEB
INF目录绝对
路径
获取
工程
或
类
的 classpath
路径
普通
Java Project
工程
classpath 的
路径
示例:/D:/Eclipse/eclipse/Mytest/bin/ Java
web
工程
中 classpath 的
路径
一般为:/D:/Eclipse/eclipse/SalaryManager/build/classes/ classpath 的相对
路径
一般为 bin,...
Java SE
62,624
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章