- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的,所以我注意到(我想是由于安全漏洞)Java决定强迫人们对他们的Java软件进行签名,并且有传言说许可证的价格在100美元到300美元之间。这应该取决于您通过的授权被许可人。但是,我正在学习JavaFX,如果不能与世界免费共享软件,那么学习它有什么意义呢?
问题是,在线或离线javafx应用程序是否都适用?让我感到困扰的是,我可能不得不自掏腰包,对我的软件进行测试和通过,以便对其进行验证,以便任何人甚至都可以从自己的计算机上运行它。我开始考虑这个问题是因为我刚刚开始我的第一个真正的JavaFX项目。这是一个扑克游戏,它将具有各种风格的扑克,甚至可能包含二十一点。确实让我感到沮丧的是,除了我之外,没有人会玩它。有人可以解释一下这种巨大的变化,这对于刚开始的开发人员意味着什么?
最佳答案
简短建议
许可您的软件供他人使用,例如授予apply a 2-clause BSD license的使用权。
如果您分发第三方库或运行时,请确保您符合这些运行时的许可证。
为您的应用程序(例如自包含应用程序)选择一个distribution execution mode。
根据您打算分发软件的方式,可能需要或可能不需要使用证书对软件进行签名。
如果希望您的用户通过第三方证书颁发机构验证您的身份,请从该证书颁发机构购买证书,否则请使用自签名证书。
对于您在问题中定义的特定用例:
许可自己的软件不需要任何费用。
与您的软件一起分发未修改的Java 8运行时是免费的。
不签名软件或使用(免费)自签名证书可能没问题。
部署方式
您如何部署应用程序将影响应用程序的签名要求。
通过webstart或Java浏览器插件部署的应用程序应使用自签名证书或第三方证书进行签名。可以使用标准Java deployment tools(以及NetBeans等IDE)。
通过Mac App Store等商店部署的应用程序将需要从商店所有者(例如Apple)获得该商店的开发者证书。尽管商店的数字签名概念类似于对浏览器嵌入内容的签名,但签名过程不同,需要使用商店所有者提供的第三方工具。
如果您希望Mac用户轻松地使用独立应用程序,则即使您没有这样的ID,受过教育的用户仍然可以使用您的软件,但您可能还需要Apple Developer ID。
证明书
您所说的许可证不是许可证,它是由certificate颁发的certificate authority。根据certificate policy颁发证书以帮助建立信任关系(例如,您的软件的用户可以知道它来自John Conner,而不是来自Terminator或其他恶意感染网络的恶意软件)。
您无需从知名的证书颁发机构获取软件签名证书。您可以是自己的权限,也可以是create a self-signed certificate。当您使用自签名证书时,与您使用来自知名证书颁发机构的证书相比,用户将看到不同的security prompt。本质上,使用自签名证书可以证明自己的身份。用户不会与第三者确认谁提供了该软件,即他们声称是谁。
选择使用自签名证书还是支付证书颁发机构的授权来验证自己的身份,取决于您要如何向用户展示应用程序。如果您只是将应用程序分发给认识您的几个朋友,那么自签名证书是很好的。如果您要将应用程序分发给不认识您的数千人,则建议对应用程序签名。另外,某些部署模式要求使用证书。
如果使用NetBeans之类的IDE,它将在必要时自动创建并使用自签名证书。您可以将Java keytool之类的命令行工具与javafxpackager或第三方工具结合使用,以使用自签名或第三方颁发的证书对应用程序进行签名。
执照
software license在软件的使用和重新分配上施加了法律参数(请考虑使用版权法,而不是使用密码工具),因此它与用于建立信任的证书完全不同。
如果您在应用程序中分发第三方软件,则必须遵守第三方授予您的许可。您有责任阅读和理解该软件的许可证,并确保您合规。
您还应该license the software you write供他人使用。因为您是为自己的软件颁发许可证的人,所以您无需购买许可证,只需选择所需的许可证,然后将其文本文件包含在软件中可以在某人看到的位置。
假设我要分发Javafx程序,我应该给他们哪个文件?
对于您问题中描述的应用程序,我建议使用self-contained部署模式,该模式将应用程序打包为本机平台安装程序(对于OS X,dmg
文件;对于Windows,msi
或exe
; rpm
或deb
(对于Linux等)。这样,用户可以下载特定于其计算机的单个文件,并以与其他任何软件完全相同的方式来安装和卸载您的应用程序。
使用独立包装:
包装中包含Java运行时,因此您无需依赖应用程序用户自行安装该运行时。
当前,此部署模式不需要使用证书签名。
用户在安装时看不到异常的Java特定警告对话框。
机器上没有安装单独的Java运行时,可以对其进行升级或删除,从而可能破坏您的应用程序。
以jnlp的形式分发应用程序,使其可以成为deployed within a browser听起来像是一个诱人的选择,但是从历史上看,许多人一直在以这种方式可靠地部署应用程序时遇到问题,您的体验可能会有所不同。
也可以选择仅将应用程序构建为jar并将其提供给某人(如果要捆绑其他库和资源,则提供为zip)。对于已经在其计算机上安装了Java运行时的开发人员来说,它会很好用,但是对于一般用户,要求他们在其计算机上找到并安装正确的Java运行时,以便您可以运行应用程序可能是不明智的选择。
在您刚刚学习JavaFX时,请专注于编写一个值得分发的优秀应用程序,然后再考虑如何授权和分发它。
仅当您要部署到iOS或Android或Raspberry Pi等低功能设备时,您才会受到技术上的限制,因为运行时环境与台式机完全不同。对于那些学习JavaFX的人,目前不建议将iOS或Android定位为目标(由于JavaFX运行时在这些平台上的不成熟状态)。如果您的目标是iOS或Android,则在对应用程序进行大量工作之前,请查看javafxports上的信息,因为这可能会限制您选择与应用程序一起使用的Java语言功能或第三方库。
关于java - JavaFX-我需要购买许可证并通过我的软件以在线共享它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25279300/
前言 在进行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
我是一名优秀的程序员,十分优秀!