0

どうにかして起動しようとすると、Java ME がフリーズします。具体的に言うと、device-manager.exe によって呼び出された javaw.exe は、例外やエラー メッセージが 1 つも渡されないため、無限ループに陥っているように見えます。トレイのアイコンが表示されますが、そのメニューには、デバイス リストではなく、エントリが 1 つしか表示されません: 終了です。タスクマネージャーからしかシャットダウンできません。また、エミュレーターにはデバイスマネージャーが必要なため、まったく操作できません。
Java ME SDK のバージョン 3.0、3.2、3.3 を試しましたが、この問題はどのバージョンでも解決しません。OS: Windows 7。JDK: 7u25。

インターネットで見つけたすべてのアドバイスを試しましたが、まだ機能しません。Device-manager のログには、「rmiRegistryPortFile」を呼び出すと問題が発生することが示されています。

[2013-07-02 19:20:53.070]  DEBUG - strap.BasicObjectConfiguration - Calling create on rmiRegistryPortFile 

これは常にログの最後のエントリです。

Windows Virtual PC でインストールして実行するという方法しかありませんでした。興味深いことに、VM の下では、まったく同じ OS (新しくインストールされた Windows 7) で問題なく動作しています。しかし、残念ながら、それはバグの原因についてあまり説明していませんでした。それは解決策ではありません:( VMなしでどうにかして動作させる必要があります。

Windowsを再インストールしようとしましたが、役に立ちませんでした。Process Monitor で javaw I/O を調べて、動作中のものと比較しました。ファイル「rt.jar」を読み取った後(「rmiRegistryPortFile」をロードするときだと思いますか?)、アプリケーションスレッドの1つが突然シャットダウンしたように見えますが、javawはその直後にログファイルに書き込みます。Windows のログには、この件に関する情報はありませんでした。アクセス許可の問題はなく、その時点ではエラーや警告はありませんでした。rmir​​egistry.exe を使用して PATH 変数をディレクトリに変更しようとしましたが、役に立ちませんでした。ネットワークソケットが利用可能です。DEP 設定を変更しました。同じです。

誰でも助けてもらえますか?私はすでにこのバグに何日も費やしました。

4

3 に答える 3

0

JavaME SDK 3.0 の組み込みエミュレーターを使用して midlets を実行しようとしたときにこのエラー メッセージが表示された場合は、runMidlet.exe の DEP を無効にしてみてください。データ実行防止 (DEP) 構成は、Windows の次の場所にあります: [コントロール パネル] > [システム セキュリティ] > [システム] > [システムの詳細設定] > [詳細] タブ > [パフォーマンス] > [データ実行防止]。

このファイルを DEP 除外リストに追加します。

<javame-install-dir>\runtimes\cldc-hi-javafx\bin\runMidlet.exe

今うまくいっているなら、Sun (現在の Oracle) に、バッファ オーバーフローのないソフトウェアを作成する必要があると大声で訴えてください。

個人的には、JavaME SDK 3.0 に対してバグレポートを提出しました。それも行うか、同じバグレポートでこの問題が発生していることを声に出してください。

  1. 新しくインストールされた Windows には msvcrtXX.dlls がありません

    フォルダruntimes\\cdc-hi\\binに移動し、 にコピーMicrosoft.VC80.CRTruntimes\\cldc-hi-javafx\\binます。この問題は、自動更新ですぐに修正されます。

  2. ローカルホストの問題

    編集<javamesdk_installdir>\\toolkit-lib\\modules\\bootstrap\\conf\\system.propertiesして次のように変更 device-manager.object-registry.host=localhost してください: device-manager.object-registry.host=127.0.0.1

  3. ポート 1299 が使用される可能性があります

    編集<javamesdk_installdir>\\toolkit-lib\\modules\\bootstrap\\conf\\system.propertiesして次のように変更 device-manager.object-registry.port=1299 してください: device-manager.object-registry.port=1999

  4. XP 64 ビット

    32 ビット版の JDK を使用してください。

  5. ファイアウォール

    3 で指定されたポートでファイアウォールが通信をブロックしていないことを確認してください。デフォルトのポート番号は、Windows では 1299、Mac では 1999 です。

于 2014-05-29T17:13:33.067 に答える
0

それは間違いなく許可の問題です。Java に関連するフォルダーが「読み取り専用」であるかどうかを調べてみてください。

于 2013-07-03T08:39:24.983 に答える