jigsaw kaggle
几周前,我写了关于在Java 9上运行Eclipse Neon的文章 (尽管,我在帖子标题中错误地且令人尴尬地留下了“火星”)。 值得注意的是,我列出的步骤也适用于带有Project Jigsaw (Java模块化)构建的JDK 9 Early Access 。 Eclipse Neon在拼图上工作。 我一直在使用这种组合在一些我一直在修补的新插件上进行实际开发(稍后再介绍)。
Jigsaw以其当前形式提供了一个定义明确的可见性模型,该模型管理可从其他模块访问模块的哪些部分。 作为其一部分,它可以防止您访问内部代码。 例如,多年来,我们一直被警告说,使用com.sun.*
软件包是僵尸程序,而Jigsaw则打算为此做些事情。 模块化的JDK将这些内部程序包从依赖模块中隐藏起来,并在尝试访问它们(编译器和运行时)时抛出异常。
作为在类路径上运行的“遗留” Java应用程序,Eclipse IDE作为未命名模块 (Voldemodule?必须不命名的模块?)运行。未命名模块在运行时具有特殊状态,但仍受可见性约束限制。 我将在后面的文章中保存更详细的讨论。 我今天的观点是, Eclipse IDE仅可用于JDK 9拼图构建。 至少在我测试过的Fedora 22和Windows 8系统上确实如此。 我很想了解您的经验。
Jigsaw构建带有一个方便的工具jdeps ,它可以进行与模块依赖项有关的各种事情 (请注意,此工具仅包含在Jigsaw版本中) 。 该功能包括扫描Java代码以确定是否违反模块化模型所施加的任何限制的功能。
我在Mars.1存储库上运行了jdeps ,以了解我们可能要完成的工作,并且对Eclipse Project代码对内部API的引用很少感到惊讶。 也许我最大的担心是在SWT_AWT桥中引用了一个内部类( 错误482318 )。 当我调查其他命中时,我将打开其他错误。
同时,如果您想检查自己的代码是否违反规定,则可以自己运行jdeps 。 带有Project Jigsaw构建的JDK 9 Early Access只是归档文件,您可以将其解压缩到您选择的目录中(它不会更新系统上的任何路径或配置)并执行:
~/jdk1.9.0> bin/jdeps -jdkinternals /path/file.jar
/path/file.jar指向一个或多个文件(例如〜/ .p2 / plugins / *。jar)。
纠正:jdeps包含在Java 8和9版本中。
在引起您注意的同时,请务必为EclipseCon 2016进行演讲!
翻译自: https://www.javacodegeeks.com/2015/11/eclipse-ide-on-jdk-9-early-access-with-project-jigsaw.html
jigsaw kaggle