問題タブ [java-9]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
eclipse - Neon: jdk9 で実行するには?
jdk9で遊び始めたところです-そして、最初はちょっと立ち往生しています:
- ダウンロードして解凍した eclipse-java-neon-m4a-win32
- インストールされたJava 9サポート(マーケットプレイスのdndによる)
- jdk9u99 をダウンロードしてインストールしました (パブリック jre ではなく、jdk のみ)
この時点で、デフォルトの Java (8u60) で eclipse を jre/jdk (eclipse.ini の vm 引数なし/なし) で実行し、Java 9 サポートを使用できます。
次のステップとして、java 9 で eclipse を実行したいと思いました。vm-arg を eclipse.ini に追加しました。これで、Eclipse は長いエラー ログで起動を中止します (ini とログの両方を以下に示します)。
問題はどこですか?
私の初期設定:
エラー ログの上部 (> 900k)
アップデート
最新の Neon (M6) と 9-ea-113 ではまだ問題が発生していますが、ログに記録されたエラーは変更されています。
これは、バグ レポートのものと似ています。M7で修正済みとしてマークされています。
java - OSXにJDK 9をインストールした後、Eclipseが開かない
OS X 10.11.3 El Capitan を実行しています。最近まで、Eclipse Mars.1 と JDK 8u72 は問題なく動作していました。
最近、「jdk9.java.net/download/」から JDK 9 の早期スナップショット リリースをインストールしました。その後、Eclipse が開かず、常にエラーが発生したというメッセージが表示され、ログを参照するように指示されます。
JDK 9 のインストール後に Eclipse がクラッシュする理由について調査したところ、eclipse.org が実際に Eclipse Mars および Neon の更新パッチをリリースして、JDK 9 の使用をサポートしていることがわかりました。 www.eclipse.org/community/eclipse_newsletter/2015/june/article4.php . Mars と Neon のサポート パッチのダウンロード手順も記載されています。
サポート パッチを (Eclipse マーケットプレースまたは p2 リポジトリから) ダウンロードする方法はどちらも Eclipse が実行されている必要があり、Eclipse がまったく起動していないため、回避策が必要であると考えました。これは私がしたことです:
(1) JDK 9 のアンインストール (/Library/Java/JavaVirtualMachines/ 内の「jdk-9.jdk」ディレクトリを削除)
(2) Eclipse を起動し、更新パッチをインストールします (私は p2 リポジトリを使用して行いました)。
(3) JDK 9 を再インストールし、Eclipse を再度起動してみてください。
この時点で、Mars.1 用の Java 9 サポート パッチがインストールされているため、Eclipse が実行されるはずです。ただし、Eclipse はまだ実行されず、以前と同じエラー メッセージが表示されます。
このリンクをクリックして、Eclipse が起動時にクラッシュしたときに参照するように最後に指示したログ ファイルを表示します。「/Applications/Eclipse/Contents/Eclipse/configuration/」にありました。
JDK 9 がインストールされた Mac で Eclipse を実行する方法を理解してくれる人に感謝します!
javafx-8 - インストールされた動作のマッピングを上書きする方法は?
java-9 では、Skins はパブリック スコープになりましたが、Behaviors は不明のままですが、すべての入力バインディングに InputMap を使用するようになり、大幅に変更されました。
CellBehaviorBase は、次のようなマウス バインディングをインストールします。
具体的な XXSkin は、動作を非公開でインストールします。
要件は、mousePressed 動作を置き換えることです (jdk9 コンテキストで)。スーパーのフィールドをリフレクティブに取得し、そのすべてのマッピングを破棄し、カスタム動作をインストールするという考え方です。理解できない何らかの理由で、古いバインディングがまだアクティブであり (古いマッピングは空ですが!) 、新しいバインディングの前に呼び出されます。
以下は実行可能な例です。mousePressed へのマッピングは、何もしないように、特に super を呼び出さないように単純に実装されています。古いバインディングが動作していることを確認するために、CellBehaviorBase.mousePressed に条件付きデバッグ ブレークポイントを設定しました (Eclipse の場合):
デバッグを実行し、任意のセルをクリックすると、出力は次のようになります。
最後の部分、つまり私のカスタム動作による出力のみが表示されることを期待しています。どういうわけか根本的にずれているように感じますが、それを釘付けにすることはできません. アイデア?
実行可能なコード (長くて申し訳ありませんが、ほとんどはボイラープレートです):
編集
提案は、具体的な XXSkin の代わりに抽象的なスキン XXSkinBase から継承することです (その後、必要な動作を自由にインストールできます:-) は非常に合理的であり、最初のオプションにする必要があります。XX が TableCell である特定のケースでは、基本クラスに抽象パッケージ プライベート メソッドが含まれているため、現在のところそれは不可能です。また、抽象ベースを持たない XX もあります (fi ListCell など)。
java - pom.xml で maven-jdeps-plugin を実行するにはどうすればよいですか?
私pom.xml
はmaven-jdeps-pluginを追加しました:
しかし、これをJDK 8とmaven 3.3.3で実行すると、jdepsプラグインはチェックを行いません:
追加情報:
java - JDK 9 で動作するように tools.jar に対する maven 依存関係を宣言する
JDK 8以前で正常に機能するこの手法を使用するプロジェクトがあります。ただし、JDK 9 では、この jar が削除され、機能しなくなりました。
com.sun:tools:jar の「dependencies.dependency.systemPath」は、存在しないファイル /usr/lib/jvm/java-9-jdk/../lib/tools.jar を参照しています。JRE だけでなく、JDK を使用して Maven を実行していることを確認してください。
( JDK 9にはtools.jarはありませんが、パスは奇妙に見えます)
JDK のバージョンや JDK ベンダーにまたがって機能するベスト プラクティスは何ですか? OpenJDK での JDK 9 の回避策さえ見つけられませんでした (プロジェクトを JDK 8 でビルド可能に保ちながら)。