Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaEE中获取web项目的根路径_Java_Path - Fatal编程技术网

如何在JavaEE中获取web项目的根路径

如何在JavaEE中获取web项目的根路径,java,path,Java,Path,我将JavaEE用于我的动态web项目。我将sitemap.xml文件放在根路径中。 现在我需要修改该文件的路径。我尝试: String path = getClass().getClassLoader().getResource(".").getPath() +"\\sitemap.xml"; 但是系统找不到指定的文件。 我正在使用windows,当我将项目上载到linux主机时需要更改什么?首先,尽量不要使用windows文件分隔符“\”,因为它依赖于平台。 相反,您可以使用“/”(据我所

我将JavaEE用于我的动态web项目。我将sitemap.xml文件放在根路径中。 现在我需要修改该文件的路径。我尝试:

String path = getClass().getClassLoader().getResource(".").getPath() +"\\sitemap.xml";
但是
系统找不到指定的文件

我正在使用windows,当我将项目上载到linux主机时需要更改什么?

首先,尽量不要使用windows文件分隔符“\”,因为它依赖于平台。
相反,您可以使用“/”(据我所知,它应该被JVM替换为合适的分隔符),或者,更好的是,。

首先,尽量不要使用windows文件分隔符“\”,因为它依赖于平台。
相反,您可以使用“/”(据我所知,它应该被JVM替换为合适的分隔符),或者,更好的是,。

首先,尽量不要使用windows文件分隔符“\”,因为它依赖于平台。
相反,您可以使用“/”(据我所知,它应该被JVM替换为合适的分隔符),或者,更好的是,。

首先,尽量不要使用windows文件分隔符“\”,因为它依赖于平台。 相反,您可以使用“/”(据我所知,它应该被JVM替换为合适的分隔符),或者更好的是,.

类加载器#getResource()只查找类路径资源,而不是web资源。
sitemap.xml
显然是一种web资源。您应该改为使用JSF,或者它的JSF对应项—正如您的问题历史记录所表明的,您正在使用JSF

URL url = externalContext.getResource("/sitemap.xml");
或者,仅供阅读:

InputStream input = externalContext.getResourceAsStream("/sitemap.xml");
通常,您不应该对实际使用的磁盘文件系统路径感兴趣。这通常是一个临时文件夹位置,甚至是内存中的位置


与具体问题无关,写信给它是一个完整的故事。类路径资源和web资源都不打算从JavaEE应用程序内部写入。即使是可能的(即,它不是内存中的资源),只要重新部署WAR,甚至只是重新启动服务器,所有更改都将完全丢失,原因很简单,这些更改没有反映在原始WAR文件中。考虑到“sitemap.xml”的具体文件名,我的印象是您打算使用更持久的存储。在这种情况下,我强烈建议寻找不同的解决方案。例如,将文件存储在WAR之外的固定路径中,或者仅将数据结构存储在数据库中。

类加载器#getResource()只查找类路径资源,而不查找web资源。
sitemap.xml
显然是一种web资源。您应该改为使用JSF,或者它的JSF对应项—正如您的问题历史记录所表明的,您正在使用JSF

URL url = externalContext.getResource("/sitemap.xml");
或者,仅供阅读:

InputStream input = externalContext.getResourceAsStream("/sitemap.xml");
通常,您不应该对实际使用的磁盘文件系统路径感兴趣。这通常是一个临时文件夹位置,甚至是内存中的位置


与具体问题无关,写信给它是一个完整的故事。类路径资源和web资源都不打算从JavaEE应用程序内部写入。即使是可能的(即,它不是内存中的资源),只要重新部署WAR,甚至只是重新启动服务器,所有更改都将完全丢失,原因很简单,这些更改没有反映在原始WAR文件中。考虑到“sitemap.xml”的具体文件名,我的印象是您打算使用更持久的存储。在这种情况下,我强烈建议寻找不同的解决方案。例如,将文件存储在WAR之外的固定路径中,或者仅将数据结构存储在数据库中。

类加载器#getResource()只查找类路径资源,而不查找web资源。
sitemap.xml
显然是一种web资源。您应该改为使用JSF,或者它的JSF对应项—正如您的问题历史记录所表明的,您正在使用JSF

URL url = externalContext.getResource("/sitemap.xml");
或者,仅供阅读:

InputStream input = externalContext.getResourceAsStream("/sitemap.xml");
通常,您不应该对实际使用的磁盘文件系统路径感兴趣。这通常是一个临时文件夹位置,甚至是内存中的位置


与具体问题无关,写信给它是一个完整的故事。类路径资源和web资源都不打算从JavaEE应用程序内部写入。即使是可能的(即,它不是内存中的资源),只要重新部署WAR,甚至只是重新启动服务器,所有更改都将完全丢失,原因很简单,这些更改没有反映在原始WAR文件中。考虑到“sitemap.xml”的具体文件名,我的印象是您打算使用更持久的存储。在这种情况下,我强烈建议寻找不同的解决方案。例如,将文件存储在WAR之外的固定路径中,或者仅将数据结构存储在数据库中。

类加载器#getResource()只查找类路径资源,而不查找web资源。
sitemap.xml
显然是一种web资源。您应该改为使用JSF,或者它的JSF对应项—正如您的问题历史记录所表明的,您正在使用JSF

URL url = externalContext.getResource("/sitemap.xml");
或者,仅供阅读:

InputStream input = externalContext.getResourceAsStream("/sitemap.xml");
通常,您不应该对实际使用的磁盘文件系统路径感兴趣。这通常是一个临时文件夹位置,甚至是内存中的位置


与具体问题无关,写信给它是一个完整的故事。类路径资源和web资源都不打算从JavaEE应用程序内部写入。即使是可能的(即,它不是内存中的资源),只要重新部署WAR,甚至只是重新启动服务器,所有更改都将完全丢失,原因很简单,这些更改没有反映在原始WAR文件中。考虑到“sitemap.xml”的具体文件名,我的印象是您打算使用更持久的存储。在这种情况下,我强烈建议您