Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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
webfolder[Windows&;Linux]外部的Java Servlet绝对路径_Java_Linux_Tomcat_Servlets_Drive Letter - Fatal编程技术网

webfolder[Windows&;Linux]外部的Java Servlet绝对路径

webfolder[Windows&;Linux]外部的Java Servlet绝对路径,java,linux,tomcat,servlets,drive-letter,Java,Linux,Tomcat,Servlets,Drive Letter,免责声明:目前,由于缺乏Linux开发/测试服务器,我目前无法亲自测试。因此,我在这里提出了这个问题。我最终会有一个Linux机器,但目前仅限于使用Windows 我正在设计一个webapp,它将在Windows和Linux上的Tomcat7中运行 假设在两个系统上,战争部署在以下位置(分别) Webapp有一个Servlet,它需要在以下位置处理来自OS文件系统的文件 /work/logs/<logfiles> C:/work/logs/<logfiles> 或者它

免责声明:目前,由于缺乏Linux开发/测试服务器,我目前无法亲自测试。因此,我在这里提出了这个问题。我最终会有一个Linux机器,但目前仅限于使用Windows

我正在设计一个webapp,它将在Windows和Linux上的Tomcat7中运行

假设在两个系统上,战争部署在以下位置(分别)

Webapp有一个Servlet,它需要在以下位置处理来自OS文件系统的文件

/work/logs/<logfiles>

C:/work/logs/<logfiles>
或者它会像我希望的那样在文件系统(
/work/logs
)中显示吗


我现在问这个问题是因为它最终会影响总体设计。

在Linux中,前导斜杠的意思是“绝对路径”,因此您可以确定,如果您使用像
/work/logs/
这样的路径,它将理解为绝对路径


顺便说一句,如果在Windows中使用相同的路径,它将工作并使用当前磁盘,即如果tomcat的工作目录位于
C:
上,它将使用
C:
驱动器,但是如果tomcat在
D:
上运行,则将使用此驱动器

在Linux中,前导斜杠的意思是“绝对路径”,所以您可以确定,如果您使用像
/work/logs/
这样的路径,它会将其理解为绝对路径


顺便说一句,如果在Windows中使用相同的路径,它将工作并使用当前磁盘,即如果tomcat的工作目录位于
C:
上,它将使用
C:
驱动器,但是如果tomcat在
D:
上运行,则将使用此驱动器

在Linux中,前导斜杠的意思是“绝对路径”,所以您可以确定,如果您使用像
/work/logs/
这样的路径,它会将其理解为绝对路径


顺便说一句,如果在Windows中使用相同的路径,它将工作并使用当前磁盘,即如果tomcat的工作目录位于
C:
上,它将使用
C:
驱动器,但是如果tomcat在
D:
上运行,则将使用此驱动器

在Linux中,前导斜杠的意思是“绝对路径”,所以您可以确定,如果您使用像
/work/logs/
这样的路径,它会将其理解为绝对路径


顺便说一句,如果在Windows中使用相同的路径,它将工作并使用当前磁盘,即如果tomcat的工作目录位于
C:
上,它将使用
C:
驱动器,但是如果tomcat在
D:
上运行,则将使用此驱动器

我建议使用CATALINA_HOME环境变量来查找一个文件夹,您可以在其中放置配置文件。对于我的项目,我有以下结构:

$CATALINA_HOME/appconfig/   <-- config
$CATALINA_HOME/webapps/somewar.war     <-- your webapps  
使用/work/logs可以在linux和windows上运行,正如@AlexR所提到的(在他的回答中更为切题),但是在linux上,您可能会遇到麻烦,因为您需要root访问权限才能创建/work文件夹。这取决于谁在管理服务器以及他们的严格程度。
我更喜欢配置解决方案,因此如果您最终在不允许您使用特定位置的机器上工作,您可以切换。当然,你确实需要被允许在卡塔琳娜的家里写作

我建议使用CATALINA_HOME环境变量来查找一个文件夹,您可以在其中放置配置文件。对于我的项目,我有以下结构:

$CATALINA_HOME/appconfig/   <-- config
$CATALINA_HOME/webapps/somewar.war     <-- your webapps  
使用/work/logs可以在linux和windows上运行,正如@AlexR所提到的(在他的回答中更为切题),但是在linux上,您可能会遇到麻烦,因为您需要root访问权限才能创建/work文件夹。这取决于谁在管理服务器以及他们的严格程度。
我更喜欢配置解决方案,因此如果您最终在不允许您使用特定位置的机器上工作,您可以切换。当然,你确实需要被允许在卡塔琳娜的家里写作

我建议使用CATALINA_HOME环境变量来查找一个文件夹,您可以在其中放置配置文件。对于我的项目,我有以下结构:

$CATALINA_HOME/appconfig/   <-- config
$CATALINA_HOME/webapps/somewar.war     <-- your webapps  
使用/work/logs可以在linux和windows上运行,正如@AlexR所提到的(在他的回答中更为切题),但是在linux上,您可能会遇到麻烦,因为您需要root访问权限才能创建/work文件夹。这取决于谁在管理服务器以及他们的严格程度。
我更喜欢配置解决方案,因此如果您最终在不允许您使用特定位置的机器上工作,您可以切换。当然,你确实需要被允许在卡塔琳娜的家里写作

我建议使用CATALINA_HOME环境变量来查找一个文件夹,您可以在其中放置配置文件。对于我的项目,我有以下结构:

$CATALINA_HOME/appconfig/   <-- config
$CATALINA_HOME/webapps/somewar.war     <-- your webapps  
使用/work/logs可以在linux和windows上运行,正如@AlexR所提到的(在他的回答中更为切题),但是在linux上,您可能会遇到麻烦,因为您需要root访问权限才能创建/work文件夹。这取决于谁在管理服务器以及他们的严格程度。
我更喜欢配置解决方案,因此如果您最终在不允许您使用特定位置的机器上工作,您可以切换。当然,你确实需要被允许在卡塔琳娜的家里写作

谢谢Alex,这实际上是一个比我希望的更好的答案。我现在要在Windows上试用/work/log路径,这将最终意味着更高的可移植性和更少的配置:)刚刚在Windows服务器上测试过,你相信/work/logs/20141211.log会发现这个C:/work/logs/20141211.log-谢谢Alex,这实际上是一个比我希望的更好的答案。我现在要在Windows上试用/work/log路径,这将最终意味着更高的可移植性和更少的配置:)刚刚在Windows服务器上测试过,你相信/work/logs/20141211.log会发现这个C:/work/logs/20141211.log-谢谢Alex,这实际上是一个比我希望的更好的答案。我现在要在Windows上尝试/work/log路径,这最终将意味着更高的可移植性和更少的配置:)刚刚在Windows服务器上测试过,您相信/work/logs/20141211.log会发现这个吗