0

私は非常に動揺している状況にあります。私のプログラムは、NetBeansの場合は100%正常に機能しましたが、ビルドするといくつかの問題が発生します。つまり、私のプログラムには、1つのインターフェイスと10の実装クラスがあります。プログラムは、ユーザーがファイルを保存する方法に基づいて、正しい正しい実装クラスを呼び出します(たとえば、ユーザーがファイルをgame.yellowとして保存する場合、game.redとして保存する場合は、「YellowImpl.java」を呼び出し、同様に「RedImpl.java」を呼び出します)。 。

しかし、それが構築されるとき、それはすべてをうまく呼んでいます、代わりにYellowImpl !! つまり、ユーザーがそれをgame.redとして保存すると、「RedImpl」が正しく呼び出され、YellowImplの代わりに他のすべての実装と同じになります。ユーザーがファイルをgame.yellowとして保存すると、プログラムは何もしません!!! しかし、これはNetBeansの内部では発生しません。私もきれいに作ってみましたが、それでも良くありません!これを引き起こしているのは何ですか?助けてください!

ただし、コーディングが多いため、コードを提供できません。

PS:私もいくつかのライブラリを使用しています

4

3 に答える 3

1

説明とコードなしでどのような問題が発生しているかを正確に理解することは困難です。ただし、実装の命名規則に問題があると思います。

おそらく、以下のリンクが役立つでしょう。

Javaインターフェイス/実装の命名規則

于 2012-05-22T09:23:47.727 に答える
0

@Rhysに同意します。アプリケーションで何が起こるかを理解するのは難しいです。アドバイスをさせてください。JavaコンパイラやJVMなどにバグがあるとは(1秒間でも)考えないでください。これは間違いなくあなたのバグです。

それを見つける方法は?リモートデバッグを使用することをお勧めします。リモートデバッガーを有効にしてIDE(この場合はNetBeans)の外部でアプリケーションを実行し、Net Beansを使用してアプリケーションに接続し、アプリケーションをデバッグします。私はあなたが数分以内に問題を罰金を科すと信じています。

リモートデバッグを有効にする方法は?次の長い文字列をJava実行コマンドラインに追加します。

-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

プログラム実行の最初に何かが起こった場合は、を使用してくださいsuspend=y

次に、NetBeansからこのアプリケーションに接続します。簡単8000です。アプリケーションの構成に応じてポートするように構成するだけです。

それでおしまい。幸運を。

于 2012-05-22T09:40:55.297 に答える
0

返信してくれてありがとう。しかし、私はなんとか問題を見つけることができました。それは単純な大文字のケースでした!! 私は「kolor」と呼ばれるパッケージを持っており、すべての実装はその中にあります。私の「YelloImpl」クラスでは、パッケージを「Kolor」と呼びました(「K」は大文字であることに注意してください)。NetBeansでは問題ありませんでしたが、外部では問題ありませんでした。これをクリアした後、すべてがうまくいきました。返信ありがとうございます。

于 2012-05-22T15:22:32.467 に答える