当前位置: 首页 > 知识库问答 >
问题:

NetBeans将{tomcat_base}/bin文件夹作为假类路径

皇甫俊雅
2023-03-14

我正在NetBeans 7.1.1中开发一个Maven Web应用程序,以Apache Tomcat 7.0.22作为服务器。运行或调试应用程序时,Java类假设"/home/user/apache-tomcat-7.0.22/bin/"作为文件的基础。

例如,如果使用"Writer rssFile=new FileWriter("test.xml创建新文件 ");", 则此新文件被创建为"/home/user/apache-tomcat-7.0.22/bin/test.xml"。

搜索图像或其他文件时,会出现同样的问题。它在“/home/user/apache-tomcat-7.0.22/bin”中开始搜索...

项目文件不在Tomcat库中,所以我不知道为什么bin文件夹被用作类路径的库。。。在客户端代码(ex.*.jsp)中,可以找到正确的路径,但在服务器端代码(Java类)中找不到!

这个问题与其他html" target="_blank">用户在https://stackoverflow.com/questions/7774446/netbeans-setting-default-current-directory-for-tomcat中提到的问题相同,但没有给出任何解决方案。

这可能是NetBeans Maven插件的错误?如何解决这个问题?

共有1个答案

蓬弘
2023-03-14

如果您使用Tomcat,那么您可以利用两个系统属性:

  • 卡塔琳娜。home-安装tomcat的地方(/home/user/apache-tomcat-7.0.22

所以你可以使用:

new File(System.getProperty("catalina.base") + "/conf/test.xml");

如果您试图加载捆绑到您的战争中的资源,您还需要做一些其他事情来加载与容器无关的资源:

>

Classloader.getResourceAsStream("/test.xml");

如果您使用2.5 servlet规范或更高版本,并且您可以访问ServletContext(或HttpServletRequest或HttpSession,您可以从中深入获取ServletContext):

ServletContext.getRealPath("/"); // will return the root of your web app
 类似资料:
  • 问题内容: 在开发Java项目时,我将所有jar文件都放在一个在项目内部创建的文件夹中,称为Now,是否可以将文件夹添加到Java类路径中,而不必添加每个jar文件? 我在考虑变量或创建用户库的思路。 问题答案: 根据您所说的,我可能会创建一个包含您的库JAR的用户库。 您可以使用Window => Preferences创建一个用户库,向下钻取到Java => Build Path => Use

  • 问题内容: 从命令行,如何设置Java CLASSPATH选项以指向包含多个jar文件的一个或多个目录?是否有通配符支持递归目录和子目录? (我的JAR文件在几个子目录中排序。) 问题答案: 如果您使用的是Java 6或更高版本,则可以使用以下形式的通配符: 如果要添加所有子目录:lib \ a \,lib \ b \,lib \ c \,则除了以下以外,没有其他机制: 您想要完成的工作没有类似或

  • 问题内容: 我的Java应用程序使用的库需要在类路径中查找文件(log4j.xml)。我使用netbeans管理我的项目,但是找不到包含lib /文件夹的方法。 Netbeans会在应用程序jar中自动创建一个MANIFEST.MF文件,并还会创建一个名为lib /的文件夹,其中包含所有依赖项。该清单指定了Class-Path属性,该属性将覆盖命令行上提供的任何- cp参数。我可以在netbean

  • 问题内容: 我可以从word2vec网站下载GoogleNews-vectors- negative300.bin.gz。.bin文件(大约3.4GB)是对我无用的二进制格式。Tomas Mikolov向我们保证:“将二进制格式转换为文本格式应该很简单(尽管这将占用更多的磁盘空间)。检查距离工具中的代码,读取二进制文件相当简单。” 不幸的是,我对C的了解不足,无法理解http://word2vec

  • 我们有一个项目,我们建立与Gradle。我们使用IntelliJ作为我们的开发环境。我们有一些资源想要保存在JAR之外,所以我们将它们放在src/dist-文件夹中。这在从命令行运行应用程序时工作得很好,但当我们想从IntelliJ调试时就不那么好了。我们可以向src/dist放一个运行时依赖项,但是我们最终会在生成的ZIP文件中使用lib-folder中的文件,而这不是我们想要的。 看起来这个问

  • 我已将所有jar文件存储到特定文件夹中,并已将特定文件夹添加到Jshell类路径中。添加类路径后,我无法在中导入包。 如果我提到了类路径中的所有jar文件名,它就可以正常工作了。我不想提及类路径中的所有Jar文件名,因为我必须在类路径中添加超过1000个Jar文件。 如何将特定文件夹配置为Jshell类路径?