从 servlet 内获取 Web 应用程序类路径

发布于 2024-09-09 06:46:58 字数 282 浏览 1 评论 0原文

这样做的原因是因为我想使用与我的 servlet 相同的类路径来使用 Runtime.exec()。 我想要运行的类位于 WEB-INF/classes/my/package/ 中。

所以我想构建一个 cmdarray 作为 String[] {"java","-cp", my_servlet_classpatch, "my.package.myclass"} 我只是找不到一种方法来获取正在运行的 servlet 类路径。

注意:这必须在 Tomcat 或 Jetty(或任何合适的 servlet 容器)中工作。

The reason to do that is because I want to use Runtime.exec() using the same classpath as my servlet.
The class I want to run is within WEB-INF/classes/my/package/.

So I want to build a cmdarray as String[] {"java","-cp", my_servlet_classpatch, "my.package.myclass"}
I just can't find a way to get my running servlet classpath.

NB: This has to work in Tomcat or Jetty (or any decent servlet container).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

哽咽笑 2024-09-16 06:46:58

getServletContext().getRealPath(...) 是您要找的吗?

例如,如果 web 应用程序位于 Linux 上并且 ImageMagick 工具可用(并且,不,我不想使用 Java ImageMagick 包装器),我需要进行一些图像处理。我的网络应用程序有一个“图像”存储库,其中包含我的所有图像。我可以通过发出以下命令来获取实际部署的目录:

getServletContext().getRealPath( "images" )

给出:

/home/tomcat/apache-tomcat-6.0.26/webapps/mywebapp/download

请注意,在您的情况下,我不确定您是否需要这个:您真的想使用 Runtime.exec 生成一个新的 Java 进程吗?

Would getServletContext().getRealPath(...) be what you're looking for?

For example I need to do some image processing if the webapp is on Linux and if the ImageMagick tools are available (and, no, I don't want to use the Java ImageMagick wrapper). My webapp has got an "images" repository into which all my images are present. I can get the actual deployed directory by issuing a:

getServletContext().getRealPath( "images" )

Which gives:

/home/tomcat/apache-tomcat-6.0.26/webapps/mywebapp/download

Note that in your case I'm not sure you need this: do you really want to spawn a new Java process using Runtime.exec?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文