問題タブ [openjdk]
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.
java - Java仮想マシン(JVM)とそのパフォーマンスの比較
次のjvmを比較するベンチマークがあるかどうか誰かが知っているかどうか疑問に思いました。
sun jvm vs. openjdk jvm vs. rockit jvm vs. j9 jvmvs.apacheハーモニー。
どれが最高のパフォーマンスを持っていますか?
math - ベジェ曲線を使用した円近似
ベジェ曲線について2つの質問があり、それらを使用して円の一部を近似します。
単位円弧(1,0)->(cos(a)、sin(a))(0 <a <pi / 2)が与えられた場合、ベジェ曲線の制御点p1を見つけるために、この弧の適切な近似が得られます。 、p2は、要件B(1/3)=(cos(a / 3)、sin(a / 3))およびB(2/3)=(cos(2a / 3)、sin( 2a / 3))。(言い換えると、ベジェ曲線が円弧内の2つの等間隔の点を通過する必要があります)。
楕円弧で円弧を回転させるアフィン変換Aがある場合、変換された制御点Ap0、Ap1、Ap2、Ap3は、楕円弧の適切なベジェ近似を定義しますか?
もちろん、p0とp3は、曲線の始点と終点です:(1,0)と(cos(a)、sin(a))。
ありがとうございました
java - ホットスポットJVMでメソッドがコンパイルされない理由
コンパイルされたメソッドに関するログ情報を提供する利用可能なフラグがあります。コンパイルされなかったメソッドと、コンパイルされなかった理由に関する情報はどこにありますか?ホットスポットコンパイラがどのように決定を下すか、特定のメソッドをコンパイルしない理由を確認できると、JVMをよりよく理解でき、より良いコードを記述して、メソッドの一部を最適化できるようになります。誰かがこのテーマについて何か考えを持っていますか?
java - JavaコマンドlastModified()がClojureで機能しない
Javaコマンドを実行して、Clojureのファイルから最終変更時刻を取得しようとしています。java.io.File.lastModifiedを使用することで、UNIX時間を取得できるはずですが、これはスクリプトの実行やREPLでは機能しません。
私のコードは次のとおりです:(java.io.File.lastModified "/home/lol/lolness.txt")
私のエラーは次のとおりです:java.lang.ClassNotFoundException:java.io.File.lastModified(NO_SOURCE_FILE:24)
ただし、(java.io.File.separator)は機能します。
編集:Clojureバージョン1.2.0-マスター-SNAPSHOTJavaバージョンOpenJDK1.6.0
java - 任意の JVM 動作
同一のJavaバージョン「1.6.0_18」OpenJDKランタイム環境(IcedTea6 1.8)(fedora-36.b18.fc11-i386)OpenJDKサーバーVM(ビルド14.0-b16、混合モード)とすべて同一の6〜7台のサーバーのセットアップを想像してください
それぞれが何時間も何日もプログラムを実行し(メモリとCPUを集中的に使用)、何度も正常に完了します(そのような統計データを取得します)が、パラメーターや私がどのように準拠したかに関係なく、1台のマシンで(javac -source 1.5 * .java/javac -O -source 1.5, javac **, 自分で任意の組み合わせを想像してみてください :))
またはそれを実行しました (-Xms200000k または単に Java blabla.java を考えてみてください)
私は最終的に、特定の瞬間や反復ではなく、「java.lang.ArrayIndexOutOfBoundsException: -1341472392」を取得します?! まず第一に、プログラムはそのような大きな値では機能しません。(コード行は、整数を含む ArrayList の呼び出しを含む) (私が気づいたように、その数は毎回異なります)
また、クラッシュしたテストを「再開」でき、このマシンでできることにも注意してください。さらにいくつかのテストを実行すると、再びクラッシュします。
私はボックスを所有しておらず、他のすべてが機能していますが、これは私にとって非常に奇妙です.
個人的な興味から、あまりバラ色ではない OpenJDK でこれがどのように発生するのでしょうか?
graphics - ベジエ パスの拡張
ポイントS、C1、C2、E、および幅を表す正の数wを持つベジェ曲線Bがあります。2 つのベジエ曲線 B1、B2 の制御点をすばやく計算して、B1 と B2 の間のものを B で表される拡張パスにする方法はありますか?
より形式的には、B1、B2 に対する適切なベジエ近似の制御点を計算します。ここで、B1 = {(x,y) + N(x,y) (w/2) | C の (x,y)}
B2 = {(x,y) - N(x,y) (w/2) | (x,y) in C}、
ここで N(x,y) は (x,y) における C の法線です。
B1、B2 は多項式曲線ではない可能性があるため、適切な近似と言えます (多項式曲線であるかどうかはわかりません)。
java - Java: How do I override a method of a class dynamically (class is eventually NOT in classpath)?
How do I call a method of a class dynamically + conditionally?
(Class is eventually not in classpath)
Let's say, I need the class NimbusLookAndFeel
, but on some systems it's not available (i.e. OpenJDK-6
).
So I must be able to:
- Get to know it that class is available (at runtime),
- If it's not the case, skip the whole thing.
- How do I manage to override a method of a dynamically-loaded class
(thus creating an anonymous inner sub-class of it)?
Code example
EDIT:
Now I edited my code, as it was suggested, to intercept NoClassDefFoundError
using try-catch. It fails. I don't know, if it's OpenJDK's fault. I get InvocationTargetException
, caused by NoClassDefFoundError
. Funny, that I can't catch InvocationTargetException
: It's thrown anyway.
EDIT2::
Cause found: I was wrapping SwingUtilities.invokeAndWait(...)
around the tested method, and that very invokeAndWait
call throws NoClassDefFoundError
when loading Nimbus fails.
EDIT3::
Can anyone please clarify where NoClassDefFoundError
can occur at all? Because it seems that it's always the calling method, not the actual method which uses the non-existing class.
fonts - OpenJDK と Sun JDK 1.6 のフォント [Linux プラットフォーム]
OpenJDK と Sun JDK のフォントが異なって見えることに気付きました。Java JDK には、それに付随するより優れたフォント セットがあります。「フォント」がどのパッケージであり、OpenJDK インストールでどのように使用できるかを知っている人はいますか?
ありがとう
java - java.lang.Math クラスの Pure Java 実装
openjdk のソースをダウンロードしたところ、java.lang.Math クラスのほぼすべてがネイティブの c/c++ コードで実装されていることに気付きました。Java で完全に記述された実装があるかどうか疑問に思っていました。
java - RMI バインディングの問題 (Windows RMI サーバーから Ubuntu RMI レジストリへ)
localhost で実行しているときに RMI レジストリに正しくバインドする RMI サーバーがあります (正しくセットアップされていることを示すため)。これを行うコードは次のとおりです。
私のローカルホストは、次のバージョンの Java で Windows を実行しています。
ここで、私の問題は、別のマシン (OpenJDK IcedTea6 1.8.1、Java バージョン 1.6.0_18 を使用して Ubuntu 10.04 を実行) で実行されている RMIRegistry にバインドしたいということです。
この Ubuntu マシンでは、CLASSPATH に何もなく (echo $CLASSPATH)、OpenJDK RMIRegistry を実行しています (Ubuntu にバンドルされているものとは対照的に):
上記のコードで、変数 rmiServerHostname が "localhost" で、RMIRegistry が Windows localhost で実行されている場合、コードは正しく機能します (RMI サーバー コードは RMI レジストリにバインドされます)。ただし、rmiServerHostname がリモート Ubuntu マシン (「deity」) の場合、「rebind」呼び出しで次の例外がスローされます。
RMIRegistry を強制終了すると、別のエラー メッセージが表示されます (当然のことですが)。
これらの RMIRegistry の実装 (Windows Java6 と Ubuntu OpenJDK 6) の間に非互換性はないと思いますが、この問題を解決する方法がわかりません。特に、コードが正しく機能することを知っているためです (最初の Windows/localhost の例)。
これまでの進捗
役立つ回答をありがとうございます。rmiServerHostname (ローカルホストで実行) と rmiRegistryHostname ('deity' で実行) の間で混乱していたことは理解しています。次のようにコードを修正しましたが、まだ同じ問題が発生しています (「Registry registry = LocateRegistry.getRegistry( rmiRegistryHostname )」という行の変更に注意してください)。
printステートメントの出力は次のとおりです(注、私のローカルホストは「RTPC-16」です)
このファイルは存在します:
したがって、もう一度要約すると、次のようになります。
- このコードは、RMIRegistry と RMIServer が同じ物理ホスト (例: localhost) にある場合に機能します。
- この問題は、別のホストで RMIRegistry プロセスのみを実行しようとしたときに発生します (つまり、RMIServer がローカルホストの「RTPC-16」で実行されているときに、RMIRegistry が「deity」で実行されている場合)。
- クライアントとサーバーの両方に RMI インターフェイス コードベース ("ReutersTickHistoryInterface.jar") をバンドルしていたので、RMI がクラス定義を転送する必要があるとは予想していませんでした。RMI はクライアント上でスタブ クラスを作成し、実際の RMI 呼び出しを処理するだけです。