問題タブ [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.

0 投票する
2 に答える
3034 参照

java - Java Swing での HiDPI サポートによる複数のルック アンド フィール

一部の Swing アプリケーションに Hi-DPI サポートを追加しようとしていますが、自分のニーズを満たす十分なソリューションを見つけることができませんでした。複数のルック アンド フィールをサポートする必要があるため、状況は私が見つけた他の投稿よりもかなり複雑に思えます (「フォント サイズに合わせて UI サイズを調整する」ことを提案する傾向があります)。

いくつかの実験ではUIManager、アプリケーションを Hi-DPI フレンドリーにするための良いスタートを切るために微調整できる多くのメトリックが含まれていることがわかりました。( UIManager-Defaultsユーティリティは、これらを調査するのに非常に役立ちます!) 私が見つけたのは、L&F が互いに完全に異なる動作をしているように見えるということです:

  • Windows L&F は適切な (完全ではない) デフォルトのフォント サイズを提供し、組み込みのアイコン (チェックボックスやウィンドウ アイコンなど) は適切なサイズに設定されていますが、他の多くの指標はまだうまくいきません。

  • UIManagerMetal では、フォントを個別に更新できます。ちょっとした作業で、組み込みのIconUIResources を一致するようにスケーリングできます。

  • Nimbus では、単一のデフォルト フォントを更新するだけで、他のフォントが適切な位置に収まります... しかし、組み込みのアイコンをスケーリングし、コンボ ボックス、ラジオ ボタン (など) を正常にレンダリングする方法は、私には理解できません!

いろいろ試してみて感じたのは、L&F 固有の特定の微調整のリストを個別に作成できるはずだということです。Fontこれには、 、IconIntegerおよびのデフォルトを微調整する可能性がありますDimension

誰かがこれに対する良い解決策を思いつきましたか?

UIDefaults標準的な L&F の調整が必要な決定的なリストを共有できる人はいますか?

Metal と Windows を一貫してサポートするソリューションに満足しています。

このようなソリューションは再利用可能で、さまざまな Swing アプリで同じ問題を解決できると思います。そのようなユーティリティがまだ存在していないように見えることに驚いています。(そうでない場合は教えてください!)もちろん、このアプローチですべてが解決されるわけではありません(たとえば、setPreferredSizeなどの呼び出しを手動でスケーリングする必要があります。また、複数の L&F を既にサポートしているアプリは、とにかくそれを呼び出すことを避ける傾向があります。)それでも、多くのアプリが良いスタートを切ることができると思います.

JDK-9が完全なHi-DPI サポートを約束していることは承知していますが、それほど長く待つことはできません。

0 投票する
1 に答える
899 参照

java - Java 9でJavaFXウィンドウのHWNDを取得することは何とか可能ですか?

Java 9 では、プライベート API へのアクセスが制限されます。これは、リフレクションを使用してウィンドウ hwnd を取得する既知の方法が機能しなくなることを意味します。

それらを取得する方法はまだありますか?タスクバーを操作するための API を提供するライブラリがあるため ( Java9が提供するのと同様の方法で)、質問します。Java 9 API はまだ AWT 用なので、Java 9 と JavaFX 用にプロジェクトをセットアップできることを願っています。

以前はプライベート メソッドを呼び出すだけでしたが、これは機能しなくなります。どんな解決策でも大歓迎です。JNA または BridJ を使用して実行できる場合、ネイティブ呼び出しは問題ありません。

0 投票する
1 に答える
1848 参照

java - Java 9 の新しい文字列実装とは?

文字列はJava 9の内部でどのように実装されていますか? 各文字は 1 バイトまたは 2 バイトとして格納されますか?

0 投票する
1 に答える
4305 参照

java - Java 9 を使用してカスタム JMOD をモジュール パスに追加する

JMODこのようなjmodツールで簡単なファイルを作成しました

次に、次のコマンドを実行して、そのモジュール内でクラスを実行しようとしました。

その結果、次の例外が発生しました。

classes(JMOD ファイルの作成に使用した) ディレクトリを modulepath として設定するだけで、すべてが期待どおりに機能します。

通常、モジュールパスにJMODファイルを配置することはできませんか? また、もしそうなら何か理由はありますか?

0 投票する
1 に答える
8369 参照

java - Java 9 モジュールで module-info.class なしで依存関係を使用することは可能ですか?

私は 2 つの小さなプロジェクトde.app1de.app2を作成しました。ここで、Appfrom de.app1Testfrom de.app2を使用します。

最初のプロジェクトのmodule-info.javaには、module de.app1 {}

2 番目のプロジェクトをコンパイルし、jar ファイルを作成しました。

そして、次のように最初のプロジェクトをコンパイルしようとしました:

Test見つからなかったため失敗しました。module-info.javaなしでプロジェクトをコンパイルすると、すべてが通常どおり機能します。

Java 9モジュール内でJava 9モジュールではないjarからクラスを使用することは何とか可能ですか? 特にサードパーティのプロジェクト (apache-commons など) に依存するプロジェクトでは、このようなものが必要になると思います。

0 投票する
1 に答える
257 参照

java - 非対話型アプリケーションで 150GB ヒープを処理する

こんにちは、インメモリ データ グリッドを使用した 150GB ヒープ メモリ プログラムのケースがあります。運用部門から、単一のマシンを使用するというクレイジーな要件があります。これで、並列ガベージ コレクタが 150GB を超えて使用された場合に何が起こるかがわかりました。おそらく、FULL GC が呼び出された場合、数十分のガベージ コレクションになります。

私の希望は、Java 9 で Shenandoah 低一時停止 GC が来ることでした。残念ながら、私が見たところ、Java 9 での配信にはリストされていません。それについて何か知っている人はいますか?

とはいえ、G1 GC がこの量のヒープ メモリに対してどのように機能するのか気になります。

そして最後の質問です。2時間で完了するはずの非インタラクティブなバッチアプリケーションがあるので、言ってみましょう。ここでの主な目標は、フル GC が開始されないようにすることです。メモリが十分にあることを確認した場合、到達可能な最大ヒープが 150 で、250 GB を割り当てると、自信を持ってフル GC がGC が開始されることはありませんか? 通常、新しい世代と古い世代が最大ヒープに達すると、フル GC がトリガーされます。別の方法でトリガーできますか?

この質問が重複していない理由をここで説明しようとします。最初に、150GB ヒープについて話します。これは、質問にまったく異なる次元を追加します。次に、前述の質問にあるように RMI を使用していません。3 つ目は、行間にある G1 ガベージ コレクタについて質問しています。 <32GB ヒープに関する質問は、ヒープ >32GB に関する質問と同じです Java 7 からインスタンス PermSpace が存在しないため、状況が少し変わったことは言うまでもありません。

0 投票する
1 に答える
804 参照

java - sendAsyncMulti / multiResponseAsync を使用した Java 9 HttpClient

Java 9 で実験しようとしていますHttpClient

HttpRequest の javadoc のような基本的な例は、問題なく動作します。

ただし、使用しようとするsendAsyncMultiと機能しません。ではファイルが作成されずE:\fooprintlnアフターjoinに達せず、例外もありませんが、基本的にはHttpResponse.multiFileの Javadocから例をコピーしました。一部の HTTP 応答がそのディレクトリに保存されることを期待していました。また、HTTP2 と followRedirects、Google などの他の URL を削除しようとしましたが、何も変わりませんでした。私は何を間違っていますか?

関連する場合、これは私が使用しているバージョンです(JDK 9の最新バージョン):

0 投票する
1 に答える
680 参照

jaxb - JAXB XJC オプション: com.sun.tools.xjc.Options の代替であり、Java9 と OSGi に適しています。

私たちのフレームワークでは、パブリック API にこのメソッドとのインターフェースがあります。

実装では、次のようにします。

ただし、OSGi と Java 9 のジグソーはどちらもcom.sun.tools.xjc.Options、私たちの実装ではなく、特にパブリック API インターフェイスで を使用することを好みません。

どうすればそれを取り除くことができますか?

0 投票する
2 に答える
190 参照

java - なぜ StructuredArray を構築不可能にする必要があるのですか?

34:00 からのこの講演StructuredArrayでは、Java 用の s の設計について説明します。物事を除いて、すべてがかなり明確です:

つまり、インスタンスは、newInstanceなどの静的ファクトリ メソッドによってのみ取得可能である可能性があります。同時に、それらはサブクラス化可能である必要があります。つまり、パブリック コンストラクターが存在する必要があり、実行時に非構築可能性が保証されます。これは非常にハックに聞こえるので、なぜだろうか?

一般的なファクトリの利点と、特に静的ファクトリ メソッドの利点については認識しています。しかし、ハッキングを受け入れられるようにするために、ここで何が得られるのでしょうか?

0 投票する
0 に答える
508 参照

java - OJDK Java バージョン 9 を使用した SBT のインストール

を実行しようとするとsbt update、ログ ファイルに次のように表示されます。

および次のエラー メッセージ:

Java バージョン:

Scala バージョン

どうすれば問題を解決できますか。私はウェブ上でこれを回避する方法を知りません。