1

私の同僚がクラスを書きました。彼のクラスは私のクラスを使用しています。クラスがコンパイルされるたびにクラスがどこにあるかをJVMに伝えるのではなく、彼は両方のクラスを次のように実行できるjarファイルにパッケージ化しました。java -jar hisclass.jar

今、私は自分のクラスに変更を加えることにしました。したがって、私のクラスは彼のjarにプリコンパイルされているので、彼のクラス(私はまだ使用する必要があります)は私の古いクラスを使用します。同僚が去りましたが、彼が私が使用するためにすべてをjarファイルにパッケージ化した方法がわかりません。

今、私が試してみるとjava -jar hisclass.jar、彼のクラスが私のクラスを呼び出すと、古いバージョンのクラスが正しく機能しなくなったため、エラーが発生する古いバージョンのクラスが呼び出されます。誰かが私が彼のクラスをjarに再コンパイルするのを手伝ってくれるか、または私が持っているものを更新するのを手伝ってもらえますか?

4

4 に答える 4

2

Eclipseでは、コードをjarファイルとしてエクスポートするだけで十分だと思います。

http://viralpatel.net/blogs/create-jar-file-in-java-eclipse/

つまり、基本的には、古いjarを取得し、抽出し、Eclipseでプロジェクトとしてロードし、jarファイルとしてエクスポートします。これで完了です。

于 2012-11-05T19:59:37.713 に答える
2
  • spcifiedクラスファイルの場合
jar -uvf0 <YOUR_JAR_NAME>.jar io/some/package/service/TestService.class
  • 全体のディレクトリ。
jar -uvf0 <YOUR_JAR_NAME>.jar io/some/package/service/
于 2021-01-29T03:57:46.463 に答える
0

それを回避できるかどうかはわかりませんが、クラスをjarファイルにコンパイルしてから、WinRARなどの圧縮エージェントで彼のjarファイルを開き、に含まれている古いjarファイルを上書きしてみてください。新しくコンパイルされたバージョンの彼のjarファイル。より良い方法(クラスが難読化されていない場合)は、Java IDEでjarファイルを開き、そこから新しいプロジェクトを作成することです。次に、同じIDEのプロジェクトで彼のjarファイルから作成したプロジェクトを参照します。このようにして、同じ環境で両方に変更を加えることができ、変更後のコードのコンパイルが簡単になります。

于 2012-11-05T19:35:58.477 に答える
0

.jarファイルを抽出して、コンパイルされたクラスを変更できます。

于 2012-11-05T19:36:13.827 に答える