草庐IT

java - 为 Java 程序创建 Windows 安装程序

coder 2023-05-14 原文

我是 Java 初学者。

我已经创建了一个简单的 GUI 应用程序,它会显示“hello world”标签。

但是,如何从 .java 或 .jar 为 windows 创建安装程序。 假设我创建了一个有用的应用程序并想与我的 friend 分享 无需知道什么是 JRE 或如何下载 JRE 即可将其安装在他们的 PC 中。

最佳答案

来自 here :

Java 中的开源安装程序生成器

IzPack

IzPack 是 Java 平台的安装程序生成器。它生成轻量级安装程序,可以在任何有 Java 虚拟机可用的操作系统上运行。根据操作系统的不同,它可以通过双击或 shell 上的简单“java -jar installer.jar”来启动。最常见的用途是为 Java 平台分发应用程序,但您也可以将其用于其他类型的项目。 IzPack 的主要好处是它提供了一种干净且独特的方式来将项目分发给使用不同操作系统的用户。

VAInstall

VAInstall 是一个用 Java 编写的多平台安装程序。它是根据 GNU GPL 许可证 2 分发的。通过一个简单的配置文件,它允许打包程序从磁盘上的不同位置选择文件和目录,而不仅仅是像其他安装程序那样的一个根目录。打包程序可以完全重新组织目标主机上的文件和目录。他可以选择目标主机的安装模式(图形、xtra、文本或ansi)。

Packlet 是一个简单的 Java 安装工具。 Packlet 类似于 zip 或 tgz 文件:它将应用程序打包成可以分发的单个压缩文件。 Packlet 文件是 Java 类文件,可以在任何安装了 Java 2 运行时环境的机器上执行。执行一个 packlet 会打开一个安装程序 gui 来配置和解压应用程序。

解除 Java 安装程序

Lift Off Java Installer 是 Java 应用程序的安装程序。亮点是自解压类文件、在目标系统上安装 Java 的最低要求以及跨平台安装。

迷你安装程序

一个用 Java 构建自安装程序的简单包。该过程是脚本驱动的,结果是一个独特的 JAR 文件,用户可以双击它来执行类似向导的安装过程。

JS平滑

JSmooth 是一个 Java 可执行包装器,它可以从 jar 文件生成标准的 Windows 可执行二进制文件 (.exe)。它使 Java 部署更加顺畅和用户友好,因为它能够自行找到 Java VM。当没有可用的 VM 时,它会向用户提供反馈,并可以将默认 Web 浏览器启动到解释如何下载 Java VM 的 URL。注意:不是完全用 JAVA 编写的

Launch4J

Windows 本地可执行 (.exe) java 应用程序包装器。提供原生启动画面、应用程序图标、搜索 JRE 或使用捆绑的 JRE、启动失败反馈、传递命令行参数。

AntInstaller

AntInstaller 是一个安装程序框架,它使用一个简单的 XML 文件来定义 UI,并使用 Apache Ant 作为后端。因此,安装程序可以做任何 Ant 可以做的事情,并且与 Ant 的扩展机制兼容。安装程序可以打包为自解压 Jar,并且可以从命令行或 Swing GUI 运行。 AntInstall 也可以用作现有 Ant 构建的 GUI 前端。

抗原

Antigen (Ant Installer Generator) 是一个获取 Ant 构建脚本的工具,将其与 GUI 结合起来,并将其打包为可执行的 jar 文件。它的主要目的是从 Ant 脚本创建强大的图形安装程序。

Java 服务包装器

Wrapper 可以将 Java 应用程序安装为 Windows NT 服务。 Wrapper 提供的脚本还使得在 UNIX 系统上安装这些相同的 Java 应用程序作为守护进程变得非常容易。 Wrapper 可以正确处理 Windows 下的用户注销、服务依赖项以及运行与桌面交互的服务的能力。

关于java - 为 Java 程序创建 Windows 安装程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5396778/

有关java - 为 Java 程序创建 Windows 安装程序的更多相关文章

  1. ruby - 如何在 Ruby 中顺序创建 PI - 2

    出于纯粹的兴趣,我很好奇如何按顺序创建PI,而不是在过程结果之后生成数字,而是让数字在过程本身生成时显示。如果是这种情况,那么数字可以自行产生,我可以对以前看到的数字实现垃圾收集,从而创建一个无限系列。结果只是在Pi系列之后每秒生成一个数字。这是我通过互联网筛选的结果:这是流行的计算机友好算法,类机器算法:defarccot(x,unity)xpow=unity/xn=1sign=1sum=0loopdoterm=xpow/nbreakifterm==0sum+=sign*(xpow/n)xpow/=x*xn+=2sign=-signendsumenddefcalc_pi(digits

  2. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  3. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  4. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  5. ruby - 如何指定 Rack 处理程序 - 2

    Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack

  6. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  7. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  8. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  9. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  10. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

随机推荐