• 締切済み

sun java 1.6 標準ライブラリのclassを修正したがjvm

sun java 1.6 標準ライブラリのclassを修正したがjvmに認識されない javaの標準ライブラリを修正しました。 以下のjarを直接修正すれば、私の修正はjvmに認識されます。 charsets.jar deploy.jar javaws.jar jce.jar jsse.jar management-agent.jar plugin.jar resources.jar rt.jar しかし別途jarファイルを作成してclasspathに入れても、jvmは上記の標準ライブラリを 優先して参照するらしく、私の修正は反映されません。上記のjarファイルを修正せずに 私の修正したclassファイルをjvmに認識させる方法はありますか?

  • Java
  • 回答数2
  • ありがとう数1

みんなの回答

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

-Xbootclasspathオプションを使ってください。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

jarファイルにせず、classファイルで配布すれば classファイルのほうが優先されるわよ。 jarにしちゃうとダメね。

jqa56thaegh
質問者

補足

classのまま実行してもだめでした ちなみに修正したのはcharsets.jarのEUC_JP.javaです

関連するQ&A

  • Jarファイルについて

    Jarファイルについて質問があります。 XalanやXercesなどは、Jarファイルとして提供されていて、 classpathに通してJavaプログラム内で使用するわけですが、 実行の際Jarファイルは一度解凍されてから、JVM内に読み込まれるのでしょうか? JarファイルはZipと同様の圧縮形式だと認識してますので、 解凍してから実行されるのだろうと思ってます。 どなたかご教授願いますでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 何度修復しても修復出来ない。

    宜しくお願い致します。 電源を常に入れっぱなしのiMac(OS10.6.8+27インチ3.06GHZ+4GBメモリ)が 突然電源が落ちていたり、Dockが上下に出たり入ったりしてレインボーカーソルが 回りっぱなしで、ここ2~3日調子が悪かったので、アクセス権の修復を やってみましたが、DVD-ROMから修復を試みたのにも係わらず、 下記の様に修復がされません。 これは修復されなくてもいい物でしたでしょうか? 見にくくて申し訳ありませんが、ペースとしておきます。 ------------------------------------------- “MacOSX”のアクセス権を検証中 “System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/jconsole.jar”上のアクセス権が一致しません。本来 lrwxr-xr-x であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib”上のユーザが一致しません。本来 0 であるはずですが、実際には 95 になっています。 “System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries”上のユーザが一致しません。本来 0 であるはずですが、実際には 95 になっています。 “System/Library/Java/Support/Deploy.bundle/Contents/Home/lib/security/cacerts”上のアクセス権が一致しません。本来 lrwxr-xr-x であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Java/Support/Deploy.bundle/Contents/Resources/Java/deploy.jar”上のアクセス権が一致しません。本来 lrwxr-xr-x であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Java/Support/Deploy.bundle/Contents/Resources/JavaPluginCocoa.bundle/Contents/Resources/Java/deploy.jar”上のアクセス権が一致しません。本来 lrwxr-xr-x であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jconsole.jar”上のアクセス権が一致しません。本来 -rw-r--r-- であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Deploy.bundle/Contents/Home/lib/security/cacerts”上のアクセス権が一致しません。本来 -rw-r--r-- であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Deploy.bundle/Contents/Resources/Java/deploy.jar”上のアクセス権が一致しません。本来 -rw-r--r-- であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Deploy.bundle/Contents/Resources/Java/libdeploy.jnilib”上のアクセス権が一致しません。本来 -rwxr-xr-x であるはずですが、実際には lrwxr-xr-x になっています。 “System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Deploy.bundle/Contents/Resources/JavaPluginCocoa.bundle/Contents/Resources/Java/deploy.jar”上のアクセス権が一致しません。本来 lrwxr-xr-x であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Resources/JavaPluginCocoa.bundle/Contents/Resources/Java/deploy.jar”上のアクセス権が一致しません。本来 -rw-r--r-- であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Resources/JavaPluginCocoa.bundle/Contents/Resources/Java/libdeploy.jnilib”上のアクセス権が一致しません。本来 -rwxr-xr-x であるはずですが、実際には lrwxr-xr-x になっています。 警告:SUID ファイル“System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAgent”が変更されていて、修復されません。 アクセス権の検証が完了しました --------------------------------------- 一応修復すると、SUID以外は修復されました、と出るのですが、また検証してみると 上記の様に修復されていないのです。 昨日、Java for Mac OS X 10.6 アップデート 5をしました。     Adobe Flash Player 10.3.181.34     Adobe AIR 2.7.0.19530の2本をUpDateしました。 今はPRAMクリアとSMCリセットを行って様子を見ています。 しかし、これを行ったらBluetoothキーボーを認識しているにも係わらず、 文字入力が出来なくなり、有線のキーボードでも文字入力が出来なくなって しまいましたが、キートップを長時間押していると文字が入力される事が分かり、 何とかパスワードを入力して立ち上げる事が出来ました。 これも不具合と関係あるのでしょうか? ご助言頂けますでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • Mac
  • JARのパスの通し方

    実行可能なjarファイルを実行するさいに標準実行環境に含まれていない外部jarファイルが必要になる場合はどのようにその外部jarを指定するのでしょうか? 単純にCLASSPATHにそのjarのディレクトリかjarそのものを指定するだけだと思ったのですが、それだとNoClassDefFoundErrorが発生してしまいます。 実行前にコマンドプロンプト(WinXPです)でSETでやはりクラスパスに追加しても効果なしで… EclipseでClassファイルからそのJARをビルドパスに含めて実行する場合はちゃんと実行できています。 また、実行JARファイルに外部JARの中身を一緒に入れてJARを生成するとちゃんと実行できます。 よろしくお願いします。

    • ベストアンサー
    • Java
  • JBoss の仕組み、開発時に行うべきこと。

    JBoss について質問です。 (JBoss EAP 6.1.0 です) パッケージの修正から再配置までの手順でわからないところがあり困っています。 JBossは未経験なのですが、10年くらい前にApatch + Tomcat で Struts のフレームワークでほんのちょっとだけ開発を行ったことがあります。 開発の流れは、以下のように認識しているのですが、何かしらの手順が抜けていたり、認識が誤っていたりするのでしょうか?? (Eclipseを使っています。) (1)プロジェクトをインポート (2)ソースを修整しコンパイル (3)Warファイルとしてエクスポート (4)%JBOSS_HOME%/server/default/deploy にWarファイルを配置 ****************************************************** このとき、 (1)「Warファイルのエクスポートの仕方」がわかりません。  メニューから選択すると、  パッケージの名前を入れたり、出力先を選択するようなダイアログが出るのですが、  パッケージの名前を入れても、OKボタンが活性にならず、作成ができないのです。 (2)「ソースを修整しコンパイル」をしたときに、  .classファイルはどこかの出力ディレクトリに作られるのでしょうか?  (見当たらないのですが、.classファイルは作られずに、   Warファイルとしてその中に内蔵されるものなのでしょうか)   Warファイルには、    jspファイル  ・・・ プレゼンテーション層    classファイル ・・・ サーブレットや、ファンクション層    jarファイル  ・・・ 複数のclass をパッケージとしてまとめたもの    web.xmlファイル ・・・ 設定ファイル   が含まれているという認識です。   しかし、不思議なのは、   なぜ「server/default/deploy にWarファイルを配置」   で動くのか?というのがわかっていません。   それぞれ、   htmlやjspファイル ⇒ WEB-INFの直下   classファイル ⇒ WEB-INF/classes   jarファイル ⇒ WEB-INF/lib   web.xmlファイル ⇒ WEB-INF/web.xml   に配置すると思います。   そして、   <welcome-file-list>要素配下の、   <welcome-file>に、   index.jsp、index.htmlを配置する認識です。   しかし、わからないのが、   「Warファイル」の形式のまま、   server/default/deploy に置いただけで、    ・WEB-INFの直下    ・WEB-INF/classes    ・WEB-INF/lib    ・WEB-INF/web.xml   には何も置いていないのに、   なぜ動くのでしょうか? (3)リリースは、必ず「Warファイル」でやらなければならないのでしょうか?  「jarファイル」を作る際、jarの中には、web.xml が入っていない認識です。  なので、  「jarファイルの差し替え」を行うときは、   ・クラスのインタフェースが変わっていない時   (.classpath に書かれているクラスのインタフェースに変更がないとき)  に限り、jarファイルの置き換えだけで、プログラムを入れ替えることができるということであっていますでしょうか? (4)プレゼンテーション層としてのトップページとしての「html」と、  そのhtmlから実行されるサーバ処理の「関連付け」はどのような仕組みになっているのでしょうか?   「WEB-INF/web.xml」に記載された、   ウェルカムページというか、TOPページというか、それを経由して、   formコントロール」に Inputの情報を、   HTTP Request として、サーバに送られる認識です。   そのとき、   その「HTTP Request」は、どこで受け取っているのでしょうか??   サーバ上のどこかのクラスで、   なんらかの方法で「HTTP Request」のヘッダ情報を解析し、   「要求された処理」を実際に動かすクラスに、処理を依頼すると思うのですが、   その「HTTP Request」を元に振り分け処理を行っているクラスというのは、   一体、なんというクラスなのでしょうか??   というか、   どのクラスでそれを行うのかは、一体、なんという設定ファイルに記載するのでしょうか?   (.xml ファイルなり、.conf ファイルなり、.ini ファイルなり、    設定系ファイルが多くて中々探せないです。。) (5)サーブレットが処理を終えたら、  クライアントに「HTTP Response」というか、  「HTML」を返す認識ですが合っていますでしょうか? (6)「.project」は、「パッケージ」1個につき1個存在しており、  また「パッケージ」1個につき、「jarファイル」も1個ということで合っていますでしょうか?

    • ベストアンサー
    • Java
  • classファイルとJARファイルで実行した出力が異なる

    Javaのコマンドラインツールです。 CLASSファイルのままで実行 C:\> java -classpath .;mail.jar;activation.jar Mailx すると正常な出力が得られるプログラムをJARファイルにして C:\> jar xvf activation.jar C:\> jar xvf mail.jar C:\> jar cfm Mailx.jar Mailx.mf *.class com javax C:\> jar tvf Mailx.jar 実行 C:\>java -classpath Mailx.jar Mailx すると、正常な出力が得られなくなり、メールアドレスが出力されるはずが、メモリのアドレスのような値が出力  javax.mail.util.SharedByteArrayInputStream@1bf52a5 されるようになります。 なぜなのでしょうか? <Mailx.mf> Manifest-Version: 1.0 Main-Class: Mailx

  • Javaアプリケーションの配布方法

    Javaで mail.jarを使用するアプリケーションを作成したのですが、どのように配布すればいいのか良くわかりません。 メインのクラスを指定したMANIFESTファイルを作成して jarファイルを作成するところまではいいのですが、 mail.jarなどの外部のライブラリをどのように含めればいいのかわかりません。 できれば、作成する jarのなかに mail.jarも含めてしまい各クライアントで Classpathの設定など面倒なことはせずに jarファイルのダブルクリックで実行させたいのですが、可能でしょうか。

    • ベストアンサー
    • Java
  • MAC OS10.6.4アクセス権の修復について2

    http://okwave.jp/qa/q7016981.html この質問をしました者です。 AHTを実行しましたが、問題ありませんでした。 ディスクの検証も問題なし。 現在アクセス権の検証をしています。 20分経っても、予想時間24分からずっと動きません。 まだ途中ですが、今のところ出ている詳細 “System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/dt.jar”上のアクセス権が一致しません。本来 lrwxr-xr-x であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/jce.jar”上のアクセス権が一致しません。本来 lrwxr-xr-x であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/jconsole.jar”上のアクセス権が一致しません。本来 lrwxr-xr-x であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/management-agent.jar”上のアクセス権が一致しません。本来 lrwxr-xr-x であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib”上のユーザが一致しません。本来 0 であるはずですが、実際には 95 になっています。 “System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/dt.jar”上のアクセス権が一致しません。本来 -rw-r--r-- であるはずですが、実際には -rwxr-xr-x になっています。 “System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/jce.jar”上のアクセス権が一致しません。本来 -rw-r--r-- であるはずですが、実際には -rwxr-xr-x になっています。 “System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/management-agent.jar”上のアクセス権が一致しません。本来 -rw-r--r-- であるはずですが、実際には -rwxr-xr-x になっています。 “System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security/blacklist”上のアクセス権が一致しません。本来 lrwxr-xr-x であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries”上のユーザが一致しません。本来 0 であるはずですが、実際には 95 になっています。 “System/Library/Java/Support/Deploy.bundle/Contents/Home/lib/security/cacerts”上のアクセス権が一致しません。本来 lrwxr-xr-x であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Java/Support/Deploy.bundle/Contents/Resources/Java/deploy.jar”上のアクセス権が一致しません。本来 lrwxr-xr-x であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/Java/Support/Deploy.bundle/Contents/Resources/JavaPluginCocoa.bundle/Contents/Resources/Java/deploy.jar”上のアクセス権が一致しません。本来 lrwxr-xr-x であるはずですが、実際には lrw-r--r-- になっています。 “System/Library/CoreServices/Menu Extras/RemoteDesktop.menu/Contents/Resources/zh_TW.lproj/RemoteDesktopMenu.nib”上のアクセス権が一致しません。本来 drwxr-xr-x であるはずですが、実際には -rwxr-xr-x になっています。 “System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/Remote Desktop Message.app/Contents/Resources/zh_TW.lproj/UIAgent.nib”上のアクセス権が一致しません。本来 drwxr-xr-x であるはずですが、実際には -rwxr-xr-x になっています。 “System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Support/LockScreen.app/Contents/Resources/zh_TW.lproj/MainMenu.nib”上のアクセス権が一致しません。本来 drwxr-xr-x であるはずですが、実際には -rwxr-xr-x になっています。 “System/Library/CoreServices/Menu Extras/RemoteDesktop.menu/Contents/Resources/zh_CN.lproj/RemoteDesktopMenu.nib”上のアクセス権が一致しません。本来 drwxr-xr-x であるはずですが、実際には -rwxr-xr-x になっています。 “System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/Remote Desktop Message.app/Contents/Resources/zh_CN.lproj/UIAgent.nib”上のアクセス権が一致しません。本来 drwxr-xr-x であるはずですが、実際には -rwxr-xr-x になっています。 “System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Support/LockScreen.app/Contents/Resources/zh_CN.lproj/MainMenu.nib”上のアクセス権が一致しません。本来 drwxr-xr-x であるはずですが、実際には -rwxr-xr-x になっています。 “System/Library/CoreServices/Menu Extras/RemoteDesktop.menu/Contents/Resources/ko.lproj/RemoteDesktopMenu.nib”上のアクセス権が一致しません。本来 drwxr-xr-x であるはずですが、実際には -rwxr-xr-x になっています。 “System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Support/Remote Desktop Message.app/Contents/Resources/ko.lproj/UIAgent.nib”上のアクセス権が一致しません。本来 drwxr-xr-x であるはずですが、実際には -rwxr-xr-x になっています。

    • ベストアンサー
    • Mac
  • MAC OS X) JREのパスが知りたい

    とある設定ファイルに、 <full path to your jre>\javaw.exe を指定しなければならないのですが、JRE(javaw.exe)のフルパスの確認方法が判りません。 JDKが入っているので、自分の認識ではJREも一緒に入っているものと思っています。 sudo find / -name javaw* | grep javaw で検索してみたところ、以下のようにjavaw.exeが見つかりませんでした。 find: /dev/fd/3: Not a directory find: /dev/fd/4: Not a directory /Applications/Xcode.app/Contents/Developer/Makefiles/pb_makefiles/javawrapper.make /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Documentation/man/javaws.1 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/share/man/man1/javaws.1 /System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/javaws /System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Documentation/man/javaws.1 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Commands/javaws /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/javaws /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/javaws.jar /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/man/javaws.1 /System/Library/Java/Support/Deploy.bundle/Contents/Home/bin/javaws /System/Library/Java/Support/Deploy.bundle/Contents/Home/lib/javaws.jar /System/Library/Java/Support/Deploy.bundle/Contents/Home/lib/security/javaws.policy /System/Library/Java/Support/Deploy.bundle/Contents/MacOS/javaws /System/Library/Java/Support/Deploy.bundle/Contents/Resources/Java/javaws.jar /usr/bin/javaws /usr/share/man/man1/javaws.1 javaw.exeが無いということは、JREが入って いないという事なのでしょうか? どなたかお詳しい方いらっしゃいましたら、ご教授の程宜しくお願い致します。

    • ベストアンサー
    • Java
  • javaの実行環境

    javaの勉強をしようと思い、以下のhelloworldコードを書いてみました。 public class HelloWorld { public static void main(String[] args) { System.out.print("Hello World\n"); } } それを、以下のようにlinux環境(ubuntu 10.10)でコンパイル実行しようとしたのですが、 javac HelloWorld.java java HelloWorld.class Exception in thread "main" java.lang.NoClassDefFoundError: ・・・ と怒られてしまいました。そこで色々調べて jar cvmf manifest.mf test HelloWorld.class とjarファイルを作成して実行したところ、適切に"Hello World"が表示されました。 (manifest.mfの中身は"Main-Class: HelloWorld"1行だけです。) その後、このjarファイルをwindows環境に持っていって実行したのですが、 Exception in thread "main" java.lang.NoClassDefFoundError: ・・・ と怒られてしまいました。 linux環境で、"echo $CLASSPATH"を実行しても何も表示されず、CLASSPATHはどこにも通っていないようです。 また、windows環境のDOS画面にてSETを実行し、環境変数を表示させてもCLASSPATHはありませんでした。(javaはインストール済みです。) で、質問です。 1)なぜjarにすると実行でき、classファイルのままでは実行出来なかったのでしょうか? 2)windows環境で、CLASSPATHを設定したほうが良いのでしょうか?設定する場合は、prgramfiles\java\binで良いのでしょうか? 以上、長くなり申し訳ないのですが、よろしくお願いします。

    • ベストアンサー
    • Java
  • クラスパスの設定

    システム環境変数における設定 C:\java\pack1\sample1.jar C:\java\pack2\sample2.class があり、sample2.classのソースファイルが C:\java\pack3\sample2.java だとします。 さらにsample1.jarを解凍すると sample1\sample3.classにmainメソッドがあるものとします。 このとき、 sample2.classを実行するときにsample1.sample3をインポートできるようにする為には、sample2.classに import pack1.sample3; CLASSPATH C:\java\pack1\sample.jar でよいでしょうか?それともどこか間違っているでしょうか?

    • ベストアンサー
    • Java

専門家に質問してみよう