草庐IT

macos - 在 Mac OS X 上捆绑私有(private) JRE

coder 2023-05-17 原文

从 Mac OS X 的下一个版本开始,Java 将不再包含在系统中,我不想强​​迫我的客户自己安装它。所以我想做我在 Windows 上所做的事情 - 将它与我的应用程序捆绑在一起。它也给了我一些希望,它可以被包含在 Mac App Store 中。

我可以在哪里下载可以包含在我的应用程序中的 Mac OS X JRE?或者我可以只复制安装在我的 Mac 上的那个吗?

最佳答案

更新(2013 年 4 月 15 日):

正如 Thorbjørn 有用地指出的那样,Oracle 现在有一个解决方案。见 http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html .但是,出于“历史目的”,我保留了原始内容,因为这是一个有趣的研究项目。

以前的版本(有修改):

这是一个很好的问题。我打算回应说你只是领先于你的时代——正如你所指出的,Java 在 Lion 发布之前不会被删除。但是,this article明确表示今天不允许使用 Java:

Apps that use deprecated or optionally installed technologies (e.g., Java, [PowerPC code requiring] Rosetta) will be rejected.

与此同时,还没有人宣布针对 Mac OS X 的可再分发 JRE。我认为您最好的选择是查看 Mac OS X Port wiki page,记住您正在开拓新领域。的 OpenJDK 项目。它确实描述了如何编译您自己的 JDK,但它确实没有明确说明生成的 JDK 是否可以干净地“捆绑”。我认为您将不得不尝试一下,看看:-(。

此外,尚不清楚 OpenJDK 许可是否允许这样做 (IANAL)。希望其他人已经在 Linux/Windows 方面弄清楚了这一点,尽管 Apple 贡献的规则当然可能不同。

希望这会有所帮助。如果不出意外,这是一个起点。

编辑:我将提出一个额外的建议。我们现在知道 Mono apps can be packaged for the App Store .此外,IKVM.NET是运行在 Mono 之上的 Java 的完整实现。理论上,您可以尝试将这两个部分放在一起,并获得一个 Java 应用程序,该应用程序捆绑在 App Store 中,实际上不需要需要 JRE!

如果你试试这个,我很想听听效果如何:-)。

编辑 2: 不幸的是,App Store 和 GPL 似乎不兼容(参见 http://www.zdnet.com/blog/open-source/no-gpl-apps-for-apples-app-store/8046)。 OpenJDK 许可证与 GPL 并不完全相同,但它非常接近(再次,IANAL)。因此,Mono 和 IKVM.NET 可能是您最好的选择。祝你好运!

关于macos - 在 Mac OS X 上捆绑私有(private) JRE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4699043/

有关macos - 在 Mac OS X 上捆绑私有(private) JRE的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  3. Ruby - 如何处理子类意外覆盖父类(super class)私有(private)字段的问题? - 2

    假设您编写了一个类Sup,我决定将其扩展为SubSup。我不仅需要了解你发布的接口(interface),还需要了解你的私有(private)字段。见证这次失败:classSupdefinitialize@privateField="fromsup"enddefgetXreturn@privateFieldendendclassSub问题是,解决这个问题的正确方法是什么?看起来子类应该能够使用它想要的任何字段而不会弄乱父类(superclass)。编辑:equivalentexampleinJava返回"fromSup",这也是它应该产生的答案。 最佳答案

  4. ruby - "public/protected/private"方法是如何实现的,我该如何模拟它? - 2

    在ruby中,你可以这样做:classThingpublicdeff1puts"f1"endprivatedeff2puts"f2"endpublicdeff3puts"f3"endprivatedeff4puts"f4"endend现在f1和f3是公共(public)的,f2和f4是私有(private)的。内部发生了什么,允许您调用一个类方法,然后更改方法定义?我怎样才能实现相同的功能(表面上是创建我自己的java之类的注释)例如...classThingfundeff1puts"hey"endnotfundeff2puts"hey"endendfun和notfun将更改以下函数定

  5. ruby - 从另一个私有(private)方法中使用 self.xxx() 调用私有(private)方法 xxx,导致错误 "private method ` xxx' called” - 2

    我正在尝试获得良好的Ruby编码风格。为防止意外调用具有相同名称的局部变量,我总是在适当的地方使用self.。但是现在我偶然发现了这个:classMyClass上面的代码导致错误privatemethodsanitize_namecalled但是当删除self.并仅使用sanitize_name时,它会起作用。这是为什么? 最佳答案 发生这种情况是因为无法使用显式接收器调用私有(private)方法,并且说self.sanitize_name是显式指定应该接收sanitize_name的对象(self),而不是依赖于隐式接收器(也是

  6. ruby - private、protected 和 public 的范围 - 2

    在Ruby类定义中,private关键字在以下场景中的作用域是什么:classFoodefbar_publicputs"public"endprivatedefbar_privateputs"private"enddefbar_public_2puts"anotherpublic"endendprivate是否只作用于bar_private?还是在bar_public_2上? 最佳答案 在您的例子中,bar_private和bar_public_2都是私有(private)的。那是因为这两种方法都在private关键字的“范围内”。

  7. ruby - 如何在 Ruby 中实现私有(private)内部类 - 2

    来自Java,我正在尝试在Ruby中实现LinkedList。我在Java中实现它的通常方法是有一个名为LinkedList的类和一个名为Node的私有(private)内部类,其中LinkedList的每个对象都作为Node对象。classLinkedListprivateclassNodeattr_accessor:val,:nextendend我不想将Node类暴露给外部世界。然而,通过Ruby中的这个设置,我可以使用这个访问LinkedList类之外的私有(private)Node类对象-node=LinkedList::Node.new我知道,在Ruby1.9中,我们可以使用

  8. ruby - 运行 rackup private_pub.ru -s thin -E production 命令时无法加载此类文件 -- thin (LoadError) - 2

    我指的是pubrailscasttutorial并已正确执行所有步骤,但在运行最后一个命令时,即rackupprivate_pub.ru-sthin-Eproduction为了架设faye服务器,我收到以下错误:/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in`require':cannotloadsuchfile--thin(LoadError)from/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in`require'from/var/lib/gems/1.9.1/gems

  9. ruby 私有(private)类方法助手 - 2

    您好,我正在尝试创建一个帮助程序,用于将ruby​​方法大量定义为私有(private)类方法。通常,可以通过使用private_class_method键工作将方法定义为私有(private)类方法。但我想创建一个以下样式的助手:classPersondefine_private_class_methodsdodefmethod_oneenddefmethod_twoendendend我计划通过以下方式动态定义它,但根本不起作用:classObjectdefself.define_private_class_methods&blockinstance_evaldoprivate&bl

  10. ruby-on-rails - 无法捆绑安装 'open-uri' - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。关于您编写​​的代码问题的问题必须在问题本身中描述具体问题—并且包括有效代码以重现它。参见SSCCE.org寻求指导。关闭8年前。Improvethisquestion我是Rails的新手。我正在制作一个网络应用程序,我在其中使用nokogiri搜索不同的网站以从中提取文本。所以在Gemfile中,我写了require'nokogiri'和'open-uri',但是当我捆绑安装时我得到这个错误:Couldnotfindgem'open-uri(>=0)ruby'inthegemsavailableon

随机推荐