Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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
在部署WAR时修改Java路径_Java_Eclipse_Tomcat_War - Fatal编程技术网

在部署WAR时修改Java路径

在部署WAR时修改Java路径,java,eclipse,tomcat,war,Java,Eclipse,Tomcat,War,我有一个Web服务器,它是我在Eclipse中与本地TomCat服务器一起开发的。在开发时,我经常不得不从Java代码的命令行运行脚本。我只是查看了eclipse中Java的工作目录(在eclipse子目录的某个地方),并在这里放置了大量的文件和脚本 现在,当制造战争时,这些路径是错误的。我只是不知道如何将这些正确地集成到我的项目中。我应该将所有内容复制到Eclipse项目目录中,并在这里创建Java“主”路径吗?我如何设置它,以便在Web服务器上部署WAR时可以工作 我应该将所有内容复制到Ec

我有一个Web服务器,它是我在Eclipse中与本地TomCat服务器一起开发的。在开发时,我经常不得不从Java代码的命令行运行脚本。我只是查看了eclipse中Java的工作目录(在eclipse子目录的某个地方),并在这里放置了大量的文件和脚本

现在,当制造战争时,这些路径是错误的。我只是不知道如何将这些正确地集成到我的项目中。我应该将所有内容复制到Eclipse项目目录中,并在这里创建Java“主”路径吗?我如何设置它,以便在Web服务器上部署WAR时可以工作

我应该将所有内容复制到Eclipse项目目录中,并在这里创建Java“主”路径吗?我如何设置它,以便在Web服务器上部署WAR时可以工作

这是个坏主意:

  • 因为您不能在Java程序中更改“当前目录”,所以唯一的方法是将“cd”更改为Eclipse项目目录并从那里启动Tomcat。恶心

  • 这在概念上是错误的:

    • 假设您在两个不同的Eclipse项目中创建了两个WAR文件。应用程序不能有两个不同的“当前”目录。这毫无意义

    • 如果您想在没有Eclipse投影仪的系统上部署到Tomcat,该怎么办


解决这个问题的正确方法是将所有必需的文件放入WAR文件中,然后使用webapp相对文件路径从webapp代码库访问它们。。。或者通过类路径


是的,这将需要更改Web应用程序的代码,但这是正确的方法。

如果我理解正确,您应该能够通过在运行时获取应用程序路径,然后将其预先添加到脚本和文件路径来解决此问题。您还可以将它们作为类路径资源加载。能否提供一个示例,说明如何在应用程序中使用这些文件和脚本?Web服务器类使用process builder类调用包含所有脚本等的子目录。它用于与另一个执行统计分析的javajar接口(我不能修改这个程序),我编写了一堆其他shell脚本来读取生成的许多文本和日志文件的输出。然后将这些数据返回给webserver类,例如,这些类将这些数据制成表格。您还可以使用Web服务器的前端开始新的统计分析,这实际上意味着让Java代码调用bash脚本来运行此程序?我是否将整个其他目录复制到eclipse项目生成器中,然后在作为war导出时,它将打包在其中?即使这样做了,我的webapp中的Java文件仍然从一个完全不同的目录“运行”,我不确定当绑定为war文件时如何分配它。