这样做的原因是因为我想使用与我的servlet相同的类路径运行Runtime.exec()。 我想要运行的类在WEB-INF / classes / my / package /.
中所以我想构建一个cmdarray作为String [] {“java”,“ - cp”,my_servlet_classpatch,“my.package.myclass”} 我只是找不到一种方法来获取我正在运行的servlet类路径。
注意:这必须在Tomcat或Jetty(或任何体面的servlet容器)中工作。
答案 0 :(得分:1)
getServletContext().getRealPath(...)
会成为您想要的吗?
例如,如果webapp在Linux上,并且ImageMagick工具可用,我需要进行一些图像处理(不,我不想使用Java ImageMagick包装器)。我的webapp有一个“图像”存储库,我的所有图像都存在于其中。我可以通过发出:
来获取实际部署的目录getServletContext().getRealPath( "images" )
给出了:
/home/tomcat/apache-tomcat-6.0.26/webapps/mywebapp/download
请注意,在您的情况下,我不确定您是否需要:您是否真的想使用Runtime.exec生成新的Java进程?