【问题标题】:How to Deploy a jar File on a remote server from within Netbeans?如何从 Netbeans 中在远程服务器上部署 jar 文件?
【发布时间】:2014-02-06 16:44:17
【问题描述】:

我已经开发了一个服务器 [server.jar],它现在运行良好(在我的本地主机上)。现在我想把这个 server.jar 放在我的远程服务器上(即:122.152.12.33)并在那里运行它,所以我的客户端应用程序用这个 ip 替换“Localhost”并连接 [server.jar]...

我该怎么做?

我找到了答案,但不理解它们(WAR?和一些配置)。

我正在使用 NetBeans IDE。使用 netbeans 部署 Jar 文件并转换为 war。

注意我也是用Mysql数据库,必须在服务器端上传。

*更新: 另一个相关问题:

如果我想在现有网站(Wordpress 发布的网站)上尝试我的 server.jar,只需将我的项目添加到文件夹中,这会损害在线网站吗?

我可以使用 php 来运行 Jar 吗? (在线站点是Link。我想创建一个文件夹http://akhbarna.com/MyPrject/ ...然后将Jar放在那里并通过Php运行它。 可能吗?这对在线网站有何影响?

【问题讨论】:

  • 运行一个jar:java -jar server.jar。您必须将 jar 文件复制到服务器并运行它。如果它是一个网络应用程序,你必须发布战争或耳朵。
  • 当你说“工作”时,你的意思是在你的 IDE 中运行吗?
  • Jar 是服务器,它从客户端应用程序获取请求,并发送响应,(如 IM 服务器).. 并使用数据库,我可以将数据库和库放在哪里...
  • 是的,我的意思是在我的 IDE 中运行

标签: java netbeans deployment


【解决方案1】:

在您的 IDE 中运行距离发布和工作还有很长的路要走 ;-)

你的问题很笼统,所以我的回答也很笼统,但涵盖了基本方法。

其中的关键是思考在全新的台式 PC 上运行 hello world 应用程序需要什么 - 您需要安装 Java,创建一个文件夹来包含您的应用程序和一些运行该程序的脚本,然后复制您的 jar 到新的台式 PC 并运行这些脚本。在服务器上也没有什么不同,只是您可能会使用 3rd 方库,并且可能安装的不仅仅是 Java。

在我们了解更多细节之前,首先,构建、发布和部署空间中的术语往往过于繁琐。为了澄清,在以下答案中,我的意思是:

  • artifact - 项目生成的 jar、war、zip、包等。
  • 发布 - 构建代码以创建工件并进行部署。
  • 部署 - 将工件上传到存储库。
  • 安装 - 从存储库中获取工件并放在服务器上以便运行。

我假设您是从零开始,并且在专业环境中工作。

首先要做的是准备您的服务器。就像您在桌面上所做的那样,您将需要安装一些软件——如果您正在构建一个 Web 应用程序,则至少需要安装 Java 和 MySQL 以及一个 Servlet 容器,例如 Tomcat。您有两个选择,要么手动进行这些安装,要么使用 Puppet 之类的工具来自动化它们 - 我推荐后者,因为一旦安装,您可以在几分钟而不是几天内构建服务器。

那么您将需要某种与您的 IDE 分开的构建过程。当前流行的工具是MavenGradle。构建的目的是生成一个工件,其中包含必须添加到服务器才能安装应用程序的所有内容。在独立应用程序的情况下,这可能是一个 zip,其中包含一个磁盘映像(jar、配置、启动/停止脚本),或者在 Web 应用程序的情况下是一个战争,这是网络应用的标准部署结构。

接下来,您将需要为您的应用程序和数据库脚本进行某种发布过程。我最熟悉 Maven,它能够创建 jars、wars、专有 zip 或包,并使用其 Release Plugin 执行所有更新、VCS 标记和部署(到诸如 Nexus 之类的存储库中) 需要执行发布。数据库有点棘手,通常由应用数据库更改的 DBA 决定——通常您最终会得到创建和修改数据库所需的脚本以及以正确顺序运行这些脚本的主脚本。将它们放在一个 zip 文件中并放入存储库以确保安全。

发布后,您需要某种方式从存储库中获取工件并将它们安装到服务器上。显然,这可以手动或使用脚本完成,但我再次建议使用Puppet,至少对于以服务器为目标的工件。使用数据库脚本,虽然这也可以自动化,但更常见的是连接到数据库并使用数据库控制台手动应用脚本(不要忘记在安装新版本之前备份代码和数据库)。

终于可以启动系统了。

【讨论】:

  • 另一个相关问题,如果我想在现有网站(Wordpress 发布的网站)上尝试我的 server.jar,只需将我的项目添加到文件夹中即可。这会损害在线网站吗?我可以使用 php 来运行 Jat 吗? (在线站点是Link,我想创建文件夹akhbarna.com/MyPrject ...然后将Jar 放在那里并通过Php 运行它,这可能吗?这对在线站点有何影响?
  • 鉴于您将在单独的 JVM 中运行 server.jar 与服务器上运行的其他任何东西,它应该具有的唯一效果是消耗一些服务器资源,这可能会也可能不会取决于服务器当前的负载情况,这是一个问题。在不知道您的服务器在做什么或加载了什么的情况下,它可能无法说出来 - 最好问另一个问题,包括尽可能多的细节。
【解决方案2】:

首先需要在服务器上安装数据库(通过ssh访问)

然后你需要将jar复制到服务器上(sftp,scp...)并在上面安装一个JVM(如果还没有安装->你可以执行java -v检查它)

之后,就像 Brierson 所说,您需要运行您的 jar (java -jar server.jar)。

你可能需要添加一些jar需要的库(定义类路径,解释here

如果你的 jar 是一个服务器,那么在执行时它可能会绑定到一个端口(例如,端口 8080)。要在远程服务器中连接到您的应用,您需要将您的客户端寻址到 122.152.12.33:8080 (IP:port)

您的服务器可能有防火墙,因此您可能需要打开服务器应用程序的端口 (8080)。

【讨论】:

猜你喜欢
  • 2012-03-26
  • 2018-09-04
  • 1970-01-01
  • 1970-01-01
  • 2020-04-14
  • 2019-10-23
  • 2012-09-16
  • 2013-08-17
  • 1970-01-01
相关资源
最近更新 更多