![]() |
JavaTM Development Kit
|
JDK 目次 |
これはコンパイル時だけの問題です。1.2 コンパイラで生成されたクラスファイルは、旧版の VM で使用できます。
ドキュメンテーションコメントの中にハードコーディングされたリンクはすべて、この変更によって壊れます。ドキュメンテーションコメントにはハードコーディングされたリンクを含めることはできません。かわりに、{@link} タグを使用してください。詳細は、javadoc を参照してください。
C:¥jdk1.2 ___________|________________ | | | bin lib jre | | _______|__________ java.exe tools.jar | | javac.exe lib bin javap.exe / ¥ / ¥ javah.exe ext rt.jar classic java.exe javadoc.exe / i18n.jar / java.dll iiimp.jar jvm.dll awt.dllここに示した構造は、Windows 版 JDK ソフトウェアのものです。Solaris 版 JDK ソフトウェアのディレクトリ構造も、同様に変更されています。
JDK ソフトウェアの classes.zip アーカイブに含まれていたクラスファイルは、現在は 3 つのファイルに分割されています。
Win32 版の JDK ソフトウェアでは、Java Virtual Machine 用の DLL ファイル jvm.dll は jre¥bin¥classic ディレクトリにあります。また、JDK 1.2 ソフトウェアのディレクトリ構造に、classic ディレクトリが追加されました。
java.home システムプロパティの値は、以前は JDK ソフトウェアがインストールされているディレクトリでしたが、現在は jre ディレクトリです。
tools.jar アーカイブは、JDK ツールが使用するデフォルトのシステムクラスパス上にはありません。つまり、たとえば javadoc のドックレットをコンパイルするためには、tools.jar をクラスパス上に置く必要があります。
別の例として、次のようなコマンドがあります。javac -classpath <path to tools.jar> MyDoclet.java
このようなコマンドは、以前のバージョンの JDK ソフトウェアでは動作しましたが、現在はクラスパスが設定されていなければ動作しません。まず最初に、CLASSPATH 環境変数を設定するか -classpath オプションを使用して、tools.jar を明示的にクラスパス上に置く必要があります。java sun.tools.javac.Main MyClass.java
JDK コンパイラ (Solaris では javac、Win32 では javac.exe) はこれを自動的に行うので、コンパイラを直接起動する場合には、tools.jar をクラスパス上に置く必要はありません。java -classpath <path to tools.jar> sun.tools.javac.Main MyClass.java
コンパイラの使い方としては、この方法が推奨されています。javac MyClass.java
この問題および関連する問題の詳細は、「1.1 から 1.2 へのコマンド行の変更」を参照してください。
上記のどちらかに該当する場合には、ネイティブライブラリのリンクを設定し直さなければバージョン 1.2 では使用できません。Solaris では、リンクのコマンド行の -ljava を -ljvm に置き換える必要があります。Win32 で Microsoft VC++ リンカを使っている場合は、
上の行を、下の行に置き換える必要があります。link -dll -out:mylib.dll -libpath:%JAVA_HOME%¥lib javai.lib
この変更は、JNI でネイティブメソッドを実装しているプログラマには影響しません。link -dll -out:mylib.dll -libpath:%JAVA_HOME%¥lib jvm.lib
ネイティブメソッドを JNI に移植することを強くお勧めします。JNI は、ネイティブライブラリを Java プログラミング言語と相互運用させるための標準手法であり、JNI はどんなネイティブコードにも Virtual Machine の独立性を提供します。旧 NMI は、将来はサポートされなくなる予定です。
Copyright © 1995-98
Sun Microsystems, Inc.
All Rights Reserved.
フィードバック |
![]() Java ソフトウェア |