Javaについて
- JavaSEの構造
- ブートストラップ・クラスパス
- http://vcs.hatenablog.com/entry/java/cross-compile-bootclasspath
- 「-target」オプションでクロスコンパイルするとき、ターゲットとなるランタイムを指定しておかないと、移植したときに動かないことがある。
- たとえばJDK1.8で「-target 1.5」でコンパイルすると、JDK1.5の言語仕様でコンパイルする。しかしコンパイルしたクラスファイルを1.5のJVMに持ってくるとエラーになる。理由は、コンパイル時に1.8のランタイムライブラリ(rt.jar)を前提にコンパイルしてしまったため(1.8のJVMで動かす前提でコンパイルしている)。
- 1.5環境で動かすことを前提するのであれば、「-target」オプションと同時に「-bootclasspath」もつけておく。
- サーバ起動時のクラスパスの設定法(WTP-Tomcatの場合)
クラスファイルのターゲットとしているJVMを確認するコマンド
ちなみに出力結果が以下のようになった場合、javap -v hoge.class
クラスファイルのバージョンは「51.0」となり、ターゲットとなるJVMは「JavaSE7」となるminor version: 0 major version: 51
Oracleのjdbcドライバ(jar)のバージョン確認方法 (下記はojdbc6.jarの場合)
java -jar ojdbc6.jar
MANIFEST.MFに記載のバージョンでもOK? (hishidamaさんのサイトでは、怪しいっぽいこと書いてるが…) http://www.ne.jp/asahi/hishidama/home/tech/java/jdbc.html
- 「エラー: シンボルを見つけられません」について
- Bizcaの添付ファイルはUTF-8なので、Windows環境に持ってきてOS付属のzipツールで解凍するとファイル名が文字化けする。OS付属のzipツールで解凍せずにJavaのjarコマンドを使う(以下).