dポイントプレゼントキャンペーン実施中!

jre1.8.0_121\libのrt.jarの内容で、修正したいカ所があるのですが、
公開されているソースを修正して、パッケージ階層はそのままで
新規にrt2.jarを作り、javaのオプションでクラスパスの指定をした場合、
修正が反映されますか?
このような、方法はダメな方法ですか?

A 回答 (2件)

rt2.jarが作れるかどうかは置いといて


とても危険ですよ。

その改造したいAPIを参照している他のAPI
が正常に動くという保証はないし、
rt2.jarがrt.jarを隠せば、Javaのバージョンアップに
対応できないでしょう。

別のパッケージの新APIとして、既存のAPIをラップした
ものを作るのが最もまっとうでしょう。

具体的に何をどうしたいのですか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
言われてみれば、確かにおっしゃる通りですね。

過去の質問にご回答頂きありがとうございます。
以下の対応です。
「ttps://oshiete.goo.ne.jp/mypage/history/question/?filter=all」

http://grepcode.com/file/repository.grepcode.com …
この505行目でexlen(読み込んだバイト数)が0でかつreadFullyが-1の場合、例外を投げず、すぐにreturnし戻り値-1を
返す処理をいれることにより、ヘルスチェック(nc -z コマンドと同じ)のときにBufferedInputStreamのreadメソッドが
-1を返すことを実現しました。
電文をacceptするカ所もjreのライブラリを使っており、javax.net.ssl.SSLServerSocketでacceptして、sun.security.ssl.SSLSocketImplを取得して、これからgetInputStreamでInputstreamを取得して、これを引数にBufferedInputStreamをnewして、readすると
InputRecord.javaが使用されるため、ラッパーにするより、そのまま、APIに手を加えた方が楽だと思い、そのようにしました。
bootclasspathに指定することで実現出来ました。指定したjarには対象のクラスしか入っていないので、影響はそこまで大きくないです。

お礼日時:2017/05/11 22:37

そういう時は、元のAPIはそのままにして、独自のAPIを新しく作るのが常套手段だと思います。

    • good
    • 1
この回答へのお礼

ご回答、ありがとうございます。
コードが長いため、まるっきり利用したかったわけです。
独自のAPIだと、時間がかかりそうですね。スキルが高ければ
そっちの方が良いのでしょうけど。

お礼日時:2017/05/08 23:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!