- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
是不是大家都在想其他人不发布jar软件然后也发布exe软件?
最佳答案
Java 软件可以通过多种方式发布,具体取决于目标市场。
对开发人员来说最简单(但对最终用户来说最难)是只发布一个 jar 文件(或一组 Jar 文件)。在许多系统上,JAR 将是“可双击的”,因此充当可执行文件。但如果最终用户没有安装 Java,它将无法工作。
很好 如果您控制目标环境。如果您想同时针对 Windows、Mac 和 Linux,这也很好。任何带有 Java 的平台都可以运行它,包括您没有考虑过的平台。
不好 如果您针对的是普通用户。它不能执行“安装任务”、在开始菜单中设置任何内容或将自身与文件类型相关联。
Java Web Start 在大多数情况下是我的首选。它提供了一个基于 Java 的安装程序,可以设置开始菜单、关联文件类型和所有这些好处。但确实会在安装时弹出一个安全框。
对于大多数情况,很好。对于所有操作系统,您只有一个链接。
不好 如果您怀疑用户没有安装 JRE 或者您不希望最终用户知道该应用程序是用 Java 编写的。
您可以发布一个包含 Jar 的 zip 文件以及一个 .bat 文件和一个 .sh 文件来开始。
很好 适合管理员、开发人员和命令行应用程序。
不好 对于并不真正了解 bat 和 shell 脚本是什么并且不知道如果脚本在他们的系统中被破坏该怎么做的最终用户。
一个薄的 .exe 包装器 围绕 Jar 文件。这给最终用户的印象是应用程序是本地的。它们通常带有...
Java 感知安装程序。这是一个 native 安装程序(因此适用于 Windows、Mac 和 Linux 的不同安装程序)。这将能够检测目标机器是否安装了 Java,如果没有,则能够启动 JRE 的安装。它还将能够执行所有有趣的安装后操作,例如设置文件关联和向开始菜单添加项目。
对大多数情况都很好。
不好 如果您的目标是多个平台,因为您需要为每个平台维护一个安装程序。如果其中一个目标平台没有支持 Java 的安装程序也很糟糕(然后您将需要为该平台使用上述其他方法)。
native EXE。使用 Java-to-native 编译器(Jet、GCJ 或 IKVM),您可以创建一个 native 可执行文件。
很好 如果您真的不想让人们知道您正在使用 Java 或需要以某种奇怪的方式与 native 环境集成(ikvm 将允许您在 .NET 中使用您的 Java 代码作为简单的 . NET 对象)。
不好,因为人们认为这会神奇地使应用程序更快,而实际上并不会。
A jpm4j 包。 JPM 是 Java 的包管理器,就像 nodejs 的 npm 一样。这允许您通过一个小的命令行脚本安装软件,例如,您可以使用 jpm install -f --name jython org.python:jython
安装 jython。很好 适合开发者工具。对最终用户不好,因为它是基于命令行的,需要他们先安装 jpm。
编辑:IKVM、jpm
关于java - 我从来没有见过以jar形式发布的软件,那么我怎样才能让一个软件也以exe形式发布呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1453369/
前言 在进行Maven开发时,往往需要下载大量jar包,而由于网络不稳定等其他因素可能导致jar未下载完毕,然后保留了lastUpdated文件,导致无法更新失效的jar包。 本文分享 bat脚本,自
按字母顺序排序并不是我们花太多时间担心的事情。我们在很小的时候就学习了字母表,现在我们知道它(拉丁文)以 A 开头,然后是 B,然后是 C 等等,一直到 Z。 但是这个订单究竟存储在计算机系统中的什么
我尝试使用可分离为 2 个一维向量的二维矩阵来证明二维傅里叶变换的信号属性的可分离性。地点: f(x,y) = f(x)*f(y) 那么 F(u,v) = F(u)*F(v) 使用以下代码: % Se
我需要为几个小型sqlite数据库编写文档。想描述数据的使用方式,包括表和行说明以及示例数据。 是否可以使用MySQL Workbench?如果没有其他选择,或者我可以使用任何模板? TIA! 最佳答
我正在尝试使用旧版本(例如:1.4.5)安装 memcached,但我不知道该怎么做。 brew install memcached安装最新的。 我也试过 brew install memecache
背景 多年来,我一直使用自己的类似贝叶斯方法,根据大型且不断更新的训练数据集对来自外部来源的新项目进行分类。 每个项目都有三种类型的分类: 30 个类别,其中每个项目必须属于一个类别,且最多属于两个类
嗨,我需要确定 4 个数字是否相等。数字是 size(A,1)、size(B,1)、size(C,1) 和 size(D,1),其中,例如A = [1 2; 3 4], B=[1 2 3, 4 5 6
Wikipedia 中的文章似乎太冗长了。 我将框架理解为一组精心设计的库和工具。 Qt 框架为跨平台 GUI 提供了一组库/工具。 cocoa 框架为 Mac 做了同样的事情。 软件框架的实际定义是
我们的客户最近发现了这个网站: http://mydeco.com/3d-planner/ 它有一个非常非常奇特且组合良好的 3d CAD Web 应用程序,似乎是使用 jQuery 编写的,而不是
我们正在寻找一种独立的(非 cms)日历解决方案来显示在网络上。它可以是开源的或付费服务。 我们主要是在寻找一种在 Web 上显示日历的方法,其中包含事件发生的时间和事件的名称。如果它可以按周、月、年
我想知道与软件相关的“质量保证”和“质量科学”之间的区别。 我在Google上进行了研究,但未找到有关“质量科学”的任何信息。 最佳答案 Based on the link you have prov
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我有一个由 2 个方程和 2 个未知数组成的系统,我想使用 MATLAB 求解,但不知道如何编程。我得到了一些有关 Gamma 分布的信息(平均值为 1.86,90% 的间隔介于 1.61 和 2.1
给定一个矩阵,其中 1 是当前子集 test = 0 0 0 0 0 0 0 0 0 0 0 0
我在组合 Matlab“数据”变量的重复元素时遇到问题。我可以使用 unique 和 sort 轻松组合这些值。 [sorted,idx] = sort(data); [~,ij] = unique(
我在做的问题中有这么一段代码,如下图。定义部分只是为了向您展示数组的大小。下面我粘贴了矢量化版本 - 它慢了 2 倍以上。为什么会这样?我知道如果矢量化需要大的临时变量,我就会发生,但(看起来)这里不
我有一个 3D 矩阵,我想将它的每个 2D 分量存储在另一个 2D 矩阵的行中,该 2D 矩阵有许多行作为 3D 矩阵的第 3 维。 我该怎么做? 最佳答案 与 permute & reshape -
如果计算机能够使用纯 JavaScript(Google V8)、C++(Windows、Mac OS 和 Linux)运行程序/软件而没有任何性能问题,是否有任何好的方法可以通过要求尽可能少尽可能从
我的团队的任务是将用于播放媒体文件的全屏、信息亭式应用程序从 Windows 迁移到嵌入式 ARM Linux(瘦客户端)。我们需要在 sd/1080p 中支持 mpeg-2 播放以及 HTML、SW
我们有数以千计的具有白色或黑色或渐变背景的产品图片。我们正在寻找可以去除图片背景的软件或服务。我们需要一款能够很好地完成这项工作的智能软件。 最佳答案 在 photoshop 中,您可以记录 Acti
我是一名优秀的程序员,十分优秀!