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

正确的部署方式。生产中的jar文件

季城
2023-03-14

我是部署新手,我已经将jar文件作为一个包,我应该如何在prod服务器中进行部署?

我的prod服务器基本上是运行在AWS上的EC2机器

  1. 我应该运行java-jar“jar文件”吗?这是prod服务器的实践方式吗?
  2. 我应该将. jar文件打包到ears/war并部署在tomcat/jboss服务器中吗?

感谢您的帮助!

共有3个答案

冷越泽
2023-03-14

这基本上符合您的偏好和您所在位置的通常标准。我们在Docker中的服务基本上具有exec java-jar参数参数...entry-point.sh脚本的末尾。您可以运行整个Tomcat等。

伊羽
2023-03-14

如果您希望程序在断开SSH连接或关闭Linux中的终端后仍保持运行。您可以使用以下命令:

nohup java -jar file.jar &
夔桐
2023-03-14

您描述的两种方法都是有效的。

对于在Linux服务器上包含自己的应用程序服务器(例如Spark、Javalin、Spring Boot)的小型Web API,我启动屏幕会话并运行java-jar。这允许我在不终止程序的情况下退出SSH会话(断开与服务器的连接)。

对于其他不包括应用服务器的Spring应用程序,我将代码打包到WAR中,并将其复制到应用服务器的部署目录中。对于Tomcat来说,这就是webapps。然后,应用服务器可以读取WAR并启动正在运行的实例(假设启用了热部署)。

尤其是Tomcat还有一个网页,您可以在其中上载WAR文件来部署它。

 类似资料:
  • 问题内容: 在Docker容器中部署Java项目的Docker方法是什么? 我是否会将战争复制到webapps中: 还是我拿爆炸的战争文件: 通常,如果它是一个普通的容器,则将部署密封的war文件,但是对于docker,这意味着每次您进行较小的更改时都会推送10-20MB的文件,而添加展开的war只会推动差异-.class文件已经改变。 部署爆炸式战争而不是战争档案有不利之处吗? 问题答案: 我想

  • 在docker容器中部署java项目的docker方法是什么? 我是否将战争复制到网络应用程序中: 还是我拿爆炸的战争文件: 通常情况下,如果密封的war文件是一个普通的容器,人们会部署它,但对于docker,这意味着每次做一个小更改时都会推送一个10-20MB的文件,而添加爆炸的war只会推送差异,即。已更改的类文件。 部署爆炸战争而不是战争文件有什么缺点吗?

  • 我测试了简单的scala程序并用calac编译了它 如果我运行java-cp。;scala图书馆。“jar测试”,它工作正常。是的,scala图书馆。jar文件在同一个目录中。 这是我的清单文件manifest.txt 我用罐子cfm Test.jarmanifest.txt 如果我解压生成的测试。jar文件和打开清单文件,它不包含主类字段。因此,它不能与java-jar测试一起运行。罐子 我可以

  • 我有一个有趣的决定要为我的项目。我们将spring boot用于我们的微服务。 开发环境是嵌入式模式下的spring Bootwíth tomcat。但是,我不确定如果我在生产中也选择这种方式是否有任何优点/缺点。相反的论点是在单独的Tomcat中部署war。我无法为这两种观点想出任何买进点 我在这里看到了一些建议(但我需要更多更有力的理由来选择/不选择任何一个):Spring boot嵌入式容器

  • 我们有一个Spring Boot Angular应用程序。目前,我们正在将其打包为一个jar并运行它。 使用包装作为JAR可以吗?或者我们应该转向WAR类型的包装。会有什么不同?

  • 我试图为应用程序创建一个可执行的.jar文件,但是当我运行“java-jar myapp.jar”时,我得到了错误: 错误:找不到或加载main类com.vaadin.app.MainView 我已经在pom.xml中添加了mainClass参数,MANIFEST.MF显示了以下内容: Main-Class:com.vaadin.app.MainView 在我的类中找不到方法的原因吗?