MacOSX 上的 Java/Eclipse:src.zip 在哪里?

Posted

技术标签:

【中文标题】MacOSX 上的 Java/Eclipse:src.zip 在哪里?【英文标题】:Java/Eclipse on MacOSX: where is the src.zip? 【发布时间】:2011-04-29 23:41:58 【问题描述】:

随着 MacOSX 10.6 上的最新 Java 更新,Eclipse 不再找到 Java 源代码。

我不确定(即不记得了)我过去是否手动下载了源并将它们放在某个地方,或者 MacOSX 是否提供了它们并且 Eclipse 自动找到了它们。

MacOSX 在某处有源吗? (请不要在这里假设。我真的很想知道。)

如果没有,我在哪里可以得到它们?

【问题讨论】:

你安装的是jdk还是jre?据我所知,jdk 有源代码,但没有 jre 本身 @hhafez:我没有安装任何东西。它由 MacOSX 预装。但它必须是JDK,因为我能够编译东西。 我的雪豹 macbook 的 hack-of-least-resistance 是将默认 JRE 从“Java SE 6(MacOS X 默认)”更改为“Java SE 6”。 “Java SE 6”的位置在 /Library/Java/JavaVirtualMachines/1.6.0_29-b11-402.jdk/Contents/Home 有一个 src.jar。 “Java SE 6(MacOS X 默认)”的位置在 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home ,它没有 src.jar。我希望 Java 6 的软件更新能够保持这种新鲜感。 【参考方案1】:

据我了解,从“Java for Mac OS X 10.6 Update 3”开始,您可以在 3 个地方找到安装在 MacOS 上的 Java。

/System/Library/Frameworks/JavaVM.framework/ 是老地方。 /System/Library/Java/JavaVirtualMachines/ 是新的标准位置 - 在那里您可以找到新版本。 /Library/Java/JavaVirtualMachines 用于“...开发人员预览和第 3 方 JVM”

注意将 Apple 提供的标准组件放入 /System/Library 并将本地扩展放入 /Library 的 MacOS 规则

默认安装的 JDK 现在没有 src.jar(虽然它是 JDK,但也有 javac 等)。但是如果你安装'Java Developer package'from Apple,你会得到

/Library/Java/JavaVirtualMachines/1.6.0_22-b04-307.jdk

在 Contents/Home 下有 src.jar

所以我认为明智的做法是安装开发人员包并从您的 IDE 中指向它。


更新 - 用于“Java for Mac OS X 10.7 Update 1”,安装了开发包后,可以在以下位置找到源代码

/Library/Java/JavaVirtualMachines/1.6.0_29-b11-402.jdk/Contents/Home/src.jar

【讨论】:

developer.apple.com/library/mac/#releasenotes/Java/… 这应该是这个问题的答案,尤其是“来自 Apple”的链接指向:developer.apple.com/downloads/index.action#【参考方案2】:

安装最新的 Java 更新后,您会在下面找到 src.jar

/Library/Java/JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home

这就是我在 Eclipse 中为 Java 1.6 指出“JRE 主页”的地方。一切都按预期工作(直到现在:)

【讨论】:

什么... :P 我真的总是忽略这一点吗?我想我一直在查看安装在/System/Library/... 中的 JDK。我不知道/Library/... 中还有另一个 JDK。 我没有 /Library/Java/JavaVirtualMachines - 我认为这一定是 Sebastian 自己设置的。 @Mike Baranczak:你应该有/Library/Java/Home/src.jarJavaVirtualMachines 中的较新版本是开发人员版本。 我没有/Library/Java/Home/src.jar /Library/Java/JavaVirtualMachines/1.*。我有/Syste,/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home,但那里没有src.jar。为什么这在 Mac 上这么难? 情况并非如此,至少在“Java for Mac OS X 10.6 Update 17”中是这样。如果我从support.apple.com/kb/DL1573 更新它,我的Home 目录不包含任何src.jar【参考方案3】:

这是我对 src.jar 的体验!。

如前所述,您必须注册 Apple 开发者帐户。(免费)

转到Downloads for Apple developers,然后搜索java。

我选择了“Java for OS X 2013-005 Developer Package”

下载并安装软件包后,您会在以下位置找到 src.jar /Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Home/

希望这会有所帮助!

【讨论】:

只是想确认这是要走的路。虽然图片已经过时,但过程和路径是正确的。【参考方案4】:

它出现在最新的 OSX 10.6.7 (java 1.6.0_24) 中,他们已经清理了所有这些目录......任何地方都不存在 src.jar 并且大多数指示的目录都丢失了。

烦到无止境……

【讨论】:

我想我在以下位置找到了它:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/** 我想我必须通过更新过程才能让它显示出来。 【参考方案5】:

截至今天,2012 年 6 月 1 日,适用于 OSX 10.7 的 Java 开发人员包不再包含 Home 目录下的 src.jar。一些谷歌结果指向苹果在 2010 年决定弃用 OSX(苹果移植的)中的 Java 支持。而甲骨文从今年 4 月开始提供 Mac OS X JDK。所以接下来,从 Oracle 安装 JDK。

【讨论】:

【参考方案6】:

对于 Mac OS X x64 的 Oracle Java SE 7,src.zip 最终位于以下位置,在这种情况下,特定版本是 Java SE 7u10

/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/src.zip

【讨论】:

【参考方案7】:

在 Mac OS X 10.5.8 上,更新到 Java 1.6.0_22 并安装日期为 2010 年 10 月 20 日的最新开发人员更新后,Java 6 的 src.jar 不存在。

$ find /System/Library/Java /System/Library/Frameworks -name src.jar /System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home/src.jar /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/src.jar

在 NetBeans 6.9.1 中导航到源代码为所有构造函数和方法显示 compiled code,例如java.awt.Point:

public Point() 
    //compiled code
    throw new RuntimeException("Compiled Code");

按照thread 中的建议,可以从以前的更新中提取可用的 JAR。

附录:在 NetBeans 上,默认平台的位置是文件~/.netbeans/6.9/config/Services/Platforms/org-netbeans-api-java-Platform/default_platform.xml 中的一个属性:

<sources>
    <resource>jar:file:/Library/Java/JavaVirtualMachines/
        1.6.0_22-b04-307.jdk/Contents/Home/src.jar!/src/
    </resource>
</sources>

或者,可以引用文件/Library/Java/Home/src.jar

<sources>
    <resource>jar:file:/Library/Java/Home/src.jar!/src/</resource>
</sources>

【讨论】:

【参考方案8】:

叫我老土,但是:

找到 /Library/Java/JavaVirtualMachines/ -name src.jar

为我工作:-)

【讨论】:

或者更好的是找到 /Library/Java -name "src.*" 因为它可能是一个 .zip(在我的情况下)【参考方案9】:

也许这可以解释它:?

随着 Java for Mac OS X 10.6 Update 3 的发布,Apple 移植并随 Mac OS X 一起提供的 Java 运行时已被弃用。开发人员不应依赖 Apple 提供的 Java 运行时,这些运行时会出现在未来的 Mac OS X 版本中Java for Mac OS X 10.6 Update 3 and 10.5 Update 8 Release Notes

【讨论】:

【参考方案10】:

如果您希望 Eclipse 始终指向当前的默认 JDK 并且其源代码指向它:

/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home

Eclipse 将解析符号链接 CurrentJDK 并将其指向当前的 JDK。

【讨论】:

【参考方案11】:

感谢之前提供答案的人;他们很有帮助。

作为 Mac (10.6.6) 的新手,这是我为 MyEclipse 所做的,它也应该适用于 Eclipse;我没有在断开模式下测试过这个。当尝试为 MyEclipse 8.5 添加另一个 JRE 时,它需要一个“MacOS X VM”,并且不支持“标准 VM”。我尝试修改 eclipse.ini 和 myeclipse.ini 文件,还尝试从命令行启动 MyEclipse,并设置了特定的 JAVA_HOME,但无济于事。

1) 下载并安装正确的 Java Developer Package。转到系统偏好设置 -> 软件更新 -> 已安装的软件。您可能有给定安装的多个版本,在我的例子中,我有“Java for Mac OS X 10.6 Update 2”和“Java for Mac OS X 10.6 Update 3”——所以一定要按名称排序,或者验证一些另一种方式。截至今日,下载的文件名为javadeveloper_10.6_10m3261.dmg。

2) 在终端窗口中,我添加了一些来自 OS VM 的符号链接,这些符号链接指向标准 VM 中的 jar。我稍微修改了安全权限,因此您可能需要也可能不需要使用 sudo 来创建符号链接。

cd /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
sudo ln -s /Library/Java/JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home/appledocs.jar
sudo ln -s /Library/Java/JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home/docs.jar
sudo ln -s /Library/Java/JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home/src.jar

【讨论】:

【参考方案12】:

如果没有任何效果,只需在此处从http://jdk7src.sourceforge.net/ 下载源代码并添加它们。为我工作。

【讨论】:

【参考方案13】:

刚刚在我的 mac 上找到了 src.zip /Library/Java/JavaVirtualMachine/adoptopenjdk-11.jdk/Contents/Home/lib/src.zip

添加到“项目结构 - SDK - Sourcepath”允许我在 IntelliJ 中查看 java 源文件...

【讨论】:

以上是关于MacOSX 上的 Java/Eclipse:src.zip 在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

RealSense 无红外图像,四个 SR300 上的深度图像损坏

MacOSX 上的智能卡 PKCS#11 支持

如何修复与 MacOSX 上的全局命名空间错误中没有成员相关的缺失时间?

无法从 docker 容器中访问 MacOSX 主机上的端口

在MacOSX系统上的Android模拟器工具Genymotion

如何在 MacOSX 上的 g++ 中使用 gcc 内置 __sync_bool_compare_and_swap?