【问题标题】:com.apple.eawt - what exactly I should installcom.apple.eawt - 我应该安装什么
【发布时间】:2012-12-08 08:16:50
【问题描述】:

我正在使用 Max OS X Mountain Lion,java -version 返回“1.6.0_37”。但是我无法编译带有 com.apple.eawt.* 类导入的项目。

我必须安装什么才能在我的系统上安装 Apple Java 扩展?

任何帮助将不胜感激!

更新

我从编译器收到以下错误:

java: package com.apple.eawt does not exist

Update-2

XCode 版本 4.5.2 已安装

Update-3

我的问题的原因是在类路径中错过了 ui.jar。感谢@Ian Roberts

【问题讨论】:

  • 如果你能澄清这个问题会有所帮助。您需要 com.apple.eawt 类,还是询问是否需要它们?
  • 我相信他想使用这些类,但是当他尝试导入它们时无法编译。我可能是错的,虽然...
  • @jahroy 是对的。我不知道如何构建项目。

标签: java macos osx-mountain-lion


【解决方案1】:

无需下载 JAR 或安装任何额外的东西,这些类是 Mac OS X 上 JDK 的一部分。在 Apple Java 6 JDK 中,它们位于 JDK 捆绑包下的 Contents/Classes/ui.jar(例如 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk 或 @987654325 @),在 Oracle Java 7 上,它们位于 JRE 主目录下的 lib/rt.jar/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/Library/Java/JavaVirtualMachines/jdk1.7.0*.jdk/Contents/Home/jre)。

【讨论】:

  • 谢谢! Ui.jar 在类路径中丢失。
  • 如何将此添加到 maven 编译器插件?我是 maven 新手,你能帮帮我吗?
  • @Mubasher 如果您在 Mac 上编译,它应该开箱即用,如果您不在 Mac 上,那么您需要编写代码以通过反射进行必要的调用(@ 987654321@) 或针对具有相关方法的无操作实现的存根 jar 进行编译,例如 ymasory.github.io/OrangeExtensions
  • @IanRoberts 是的,我正在通过 Mac 编译,源文件的编译失败,特别是在我使用 aewt.Application 代码的类上。我尝试通过从 JDK home/jre 目录中手动提取 rt.jar 文件来添加依赖项。现在这样它正在工作
  • 这帮助我反编译了一些旧软件。我使用了在 Big Sur 上的 jdk1.8.0_261.jdk 中找到的 rt.jar。
【解决方案2】:

Java 9 及更高版本的解决方案

在 JDK 9 中,内部 API(例如 Mac OS X com.apple.eawt 包中的 API)将不再可访问。

见:http://openjdk.java.net/jeps/272

com.apple.eawt 已被替换。
这里介绍了一些功能:https://docs.oracle.com/javase/9/docs/api/java/awt/Taskbar.html

在 mac os 中设置停靠图标的示例实现可以在这里找到:
https://stackoverflow.com/a/56924202/5276779

【讨论】:

    【解决方案3】:

    就像任何其他外部库一样,您必须将包含这些类的 JAR 添加到您的类路径中。仅仅因为您在 Mac 上运行并不意味着现有的 Java JDK 是“扩展的”——否则,它就不会真正独立于平台。

    【讨论】:

    • 你能给我一个链接或至少一个谷歌搜索请求来获取下载此类 JAR 的 URI 吗?我找不到它。
    • 这不是真的。苹果为 Mac 提供的 JDK 确实内置了一些扩展。大多数苹果的扩展都与使 GUI 更像本地 Mac 应用程序(如 com.apple.eawt 和 com.apple.laf)工作或与QuickTime (quicktime.*)
    • 如何为 gradle 做这个?对“com.apple:AppleJavaExtensions:1.4”的依赖似乎不起作用
    • 我发现:对于 gradle 添加这个依赖: compile fileTree(dir: '/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes', include: 'ui.jar ')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多