問題タブ [jvm]
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 - Groovy を使用しないやむを得ない理由はありますか?
私は、プラットフォームから長い間離れていた後、Java で LoB アプリケーションを開発しています (過去 8 年ほど Fortran、C、C++ の smidgin、そして最近は .Net に固執していました)。
言語であるJavaは、私が覚えているものとあまり変わっていません。私はその長所が好きで、その短所を回避することができます.プラットフォームは成長しており、互いにほとんど同じことを行うように見える無数の異なるフレームワークを決定することは別の話です. しかし、それは別の日に待つことができます-全体として、私はJavaに慣れています. しかし、ここ数週間で私は Groovy に夢中になりました。これは純粋に利己的な観点からです: JVM に対する開発をより簡潔で楽しい (そして、「グルービー」な) 命題にするという理由だけではありません。 Java(言語)よりも。
Groovy について最も印象に残っているのは、Groovy 固有の保守容易性です。私たちは皆 (願わくば!) 十分に文書化された、理解しやすいコードを書くよう努めています。しかし、私たちが使用する言語自体が私たちを打ち負かすことがあります。例: 2001 年に、EDIFACT EDI メッセージを ANSI X12 メッセージに変換するライブラリを C で作成しました。これは特に複雑なプロセスではありませんが、多少の関与はありますが、当時はコードを適切に文書化したと思っていましたが、おそらく文書化していたと思いますが、6 年後にプロジェクトを再訪したとき (そして C# に順応した後)、私は見つけました。私自身、C のボイラープレート (malloc、ポインターなど) に夢中になりすぎたため、6 年前に自分が何をしていたかを最終的に理解するまでに、3 日間の思慮深い分析が必要でした。
今夜、私は約 2000 行の Java を書きました (結局のところ、今日は休みの日です!)。私が知っている限りの方法で文書化しましたが、Java の 2000 行のうち、かなりの部分が Java ボイラー プレートです。
これが、Groovy やその他の動的言語が、保守性とその後の理解で勝利を収めているところです。Groovy を使用すると、プラットフォーム固有の実装に行き詰まることなく、目的に集中できます。それはほぼ自己文書化されていますが、完全ではありません。これは、数年後に現在のプロジェクト (Groovy にできるだけ早く移植する予定です) を再検討するとき、そしてそれを継承して良い仕事を続ける後継者にとって大きな恩恵であると考えています。
では、Groovy を使用しない理由はありますか?
java - jvmメモリを増やそうとするときにXmxに設定できる最大数はありますか?
マックスはありますか?Xmxに設定できるサイズは?1024mに設定すると、日食が正常に開きます。1024 より上に設定すると、Eclipse が開かず、「jvm が終了しました。終了コード =-1」というエラーが表示されます...
「java.lang.OutOfMemoryError: Java heap space」が発生し続けるため、これを行っていました。35.5Mb の .txt ファイルを読み込んでいますが、このエラーは、" while((line = reader.readLine()) != null)
" ループを使用してファイルを読み込んでいるときに発生します。1024MBで十分だと思っていました。誰でも私を助けることができますか?
java - JVM が特定の jaas.conf ファイルを使用するにはどうすればよいですか?
JAAS セットアップとして作成した特定の jaas.conf を使用するように JVM をセットアップするにはどうすればよいですか? 起動時に設定できる構成プロパティをJAASが取得する可能性があります-D
か?
java - ファイルが存在する場合にスローされる FileNotFoundException
私はこの奇妙な問題に直面しています。
共有リソースとして別のマシンにあるファイルを読み込もうとしています:
スタンドアロン アプリケーション (16 行の Java ファイル) を実行すると、問題なく動作します。しかし、サーバー「エンジン」から同じクラスと同じメソッドを使用して同じファイルを読み込もうとすると、「FileNotFoundException」が「FileNotFoundException」投げられます。
私はある種のアクセス許可になると思ったので、リソースをドライブとしてマップします: K:\
私のJavaファイルを再実行してください。読み取り、問題ありません。
「エンジン」内でJavaファイルを再実行します-> FileNotFoundException。
ファイルをローカル マシン ( C:\MyFileHere.txt ) にコピーすると、例外はスローされません。
質問
この FileNotFoundExcecption の原因は何ですか?
私はJava 1.5を使用しています
私の知る限り、このエンジンは Java をほとんど透過的に使用しています。
誰かが似たようなことに直面したことがありますか?
追加の質問ですか?これを回避するための良いアプローチは何でしょうか? これらのファイルを提供するTomcatのインストールについて考え始め、httpを介してそれらを読み取りますが、それは多すぎると思います. とにかく、私はソケットを開くことができないでしょう。
セキュリティマネージャーが原因である可能性があります(これまで使用したことはありませんが、存在することは知っています)
その場合、代わりに SecurityException がスローされませんか?
どうもありがとう。
編集
解決しました。スティーブ W さん、ありがとうございます。
このエンジンはZeroGの「LaunchAnywhere」で起動していることが判明。そのため、指定されたアプリで JVM を実行する .exe が作成されます。
このアプリケーション自体がランチャーです。エンジンを起動すると、どういうわけか(理由や方法がわかりません)JVMプロセスを所有するユーザーはSYSTEMです。Steve が指摘したように、このユーザーには NETWORK アクセス権がないため、共有リソースまたはマップされたドライブから読み取ることができません。
回避策 (メーカーに報告中) は、エンジンを手動で起動する .cmd ファイルを作成することです。手動で起動されるため、ユーザーはネットワークにアクセスできます。
SysInternals の「Process Explorer」を使用して、エンジン アプリの実行に使用されるコマンド ラインを正確に把握しました。
何という混乱!
回答を投稿してくれた人に感謝します。
c# - Sun が C# から Java バイトコードへのコンパイラを作成しないのはなぜですか?
JVM で C# コードを実行したい
私の会社には大規模な C# コード ベースがあります。このコードの半分以上は、Excel ワークブックの作成、読み取り、変更、計算、および書き込みを行うコア エンジンです。お客様や潜在的なお客様から、エンジンの Java バージョンを構築する予定があるかどうかという質問が頻繁に寄せられますが、その多くは UI にまったく関心がありません。Java アプリケーションから私たちの .NET ライブラリを使用するのに苦労した顧客もいます。
そのため、理想的には別個の Java ソース コード ベースを維持せずに、コア エンジンの Java バージョンを構築したいと考えています。
Eric Sinkは、この問題を非常によく説明しています。私も同様の立場ですが、私たちのソフトウェア ライセンスにはロイヤリティ フリーの展開が含まれており、Eric が Mainsoft を選択することは私たちにとって非初心者でした。
私は、「c# to jvm」のようなものを数か月ごとに数年間グーグルで検索してきましたが、喜びはありませんでした。Java 用の同様のソフトウェアの開発に 7 年ほど費やしてきた経験から、コア エンジンで使用する .NET API は簡単にカプセル化でき、Java ライブラリを使用して必要なすべてを達成できると確信しています。したがって、C# -> JVM コンパイラさえあれば、Java 用のコア エンジンを構築でき、それを使用したい Java 開発者を断る必要がなくなります。
Sun が C# コンパイラを提供しない技術的な理由を尋ねているわけではありません。Java にはプロパティがない、または符号なしの 64 ビット長などがあることを認識しています...議論のために、これらの技術的な問題はすべて、JVM および/またはその他の手段を拡張することで対処できると仮定してください。
そして、ある言語/スタックが他の言語よりも優れている理由について、さらに別の議論を求めているわけではありません。私たちのビジネスの現実は、それぞれを使用している潜在的な顧客がたくさんいるということです.
Sun が C# コンパイラを使用する理由 (もちろんIMO)
Java プラットフォームでの C# コードの実行が容易になるということは、プラットフォームの開発者とソフトウェアが増えることを意味します。プラットフォームの成功にとって、これ以上に重要なことはありますか? Jonathan Schwartzはソフトウェアの専門家です。彼が Sun の社長兼 CEO として不可能な仕事を引き受けたかどうかの判断は、私より賢明な他の人に任せますが、Jonathan が Sun に入社してすぐに会ったときの私の印象は、彼はソフトウェアと大規模なソフトウェアの必要性を理解しているということです。開発者のベース。
では、なぜ Sun は C# コンパイラを開発しないのでしょうか?
- NIH症候群?
- スコット・マクニーリーの幽霊?
- あまりにも多くの Java 開発者が Microsoft に関連するものを嫌い、または信用していませんか?
- 彼らは、大金を手にすることの一部ではないことに同意しましたか?
- ???
正当な理由があるはずです。私はそれが何であるかを一生理解することはできません...
java - JVM for WEPOS
WEPOS (Windows Embedded for Point of Service) プラットフォームで j2se(1.5) アプリケーションを実行することを検討しています。Sun が Windows XP 組み込み用の Java ランタイム (Java SE for Embedded 5.0) を提供していることに気付きました。私は疑問に思っています
- WEPOS プラットフォームで標準の Sun ホットスポットを使用できますか?
- Java SE for Embedded 5.0 は WEPOS でも動作しますか? (そうであれば、SE for Embedded は限られたリソースをより有効に活用できます)
ありがとう、マイク
java - Java で正しいマイクロベンチマークを作成するにはどうすればよいですか?
Java で正しいマイクロベンチマークを作成 (および実行) するにはどうすればよいですか?
考えるべきさまざまなことを示すコードサンプルとコメントを探しています。
例: ベンチマークは時間/反復または反復/時間を測定する必要がありますか? その理由は?
java - JVM 内から JVM 引数を変更する
jvm内からjvm引数を変更する方法はありますか? 具体的には、jvm の最大ヒープ サイズを内部から変更できるようにしたいと考えています。これは可能ですか?
編集:これをやりたかった理由を追加する必要があると思います。さまざまなマシン/プラットフォームで実行される Java プログラムがいくつかあります。これらのプログラムには、実行時に供給される構成があり、プログラムが実行されているマシン/環境によって異なります。これらの構成の一部は実行時に変更でき、さまざまなプログラムは構成が変更されると自動的に更新されます。
残りの構成と同様に、実行時に供給されるこれらの構成パラメーターの 1 つにヒープ サイズを指定したかったのです。もしそうなら、プログラムは(いくつかのデフォルトのjvm引数で)起動し、取得した設定に基づいて自分自身を調整することができます.