如何在Netbeans内部署远程服务器上的jar文件?

时间:2014-01-17 11:08:18

标签: java netbeans deployment

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

我该怎么做?

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:15)

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

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

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

在我们获得更多细节之前,首先,构建,发布和部署空间中的术语往往会被严重超载。澄清一下,在下面的答案中我的意思如下:

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

我假设你是从头开始并且在专业环境中工作。

首先要做的是准备你的服务器。就像你使用桌面一样,如果你正在构建一个web-app,你将需要安装一些软件 - 至少Java和MySQL以及一个Servlet容器,如Tomcat。您有两个选择,要么手动执行这些安装,要么使用Puppet之类的工具来自动执行它们 - 我建议使用后者,因为一旦设置完成,您可以在几分钟而不是几天内构建服务器。

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

接下来,您将需要某种适用于您的应用程序和数据库脚本的发布过程。我最熟悉Maven,它能够创建jar,wars,propriatary zips或package,并且使用它的Release Plugin执行所有更新,VCS标记和部署(进入诸如{之类的存储库) {3}})需要执行发布。数据库有点棘手,通常由将应用数据库更改的DBA决定 - 通常最终会创建创建和修改数据库所需的脚本以及以正确顺序运行这些脚本的主脚本。将这些拉链存储在存储库中以便安全保存。

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

最后,您可以启动系统。

答案 1 :(得分:2)

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

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

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

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

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

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