※ ChatGPTを利用し、要約された質問です(原文:実行可能jarファイルについて!)
実行可能jarファイルについて!
このQ&Aのポイント
実行可能jarファイルについて試してみたがうまくいかない。
マニフェストファイルのMain-Classが間違っている可能性がある。
Eclipseのエクスポートを使ってjarファイルを作成し、ライブラリを取り込んだが、他の方法でも構わない。
実行可能jarファイルについて!
java -jar Foo.jar Foo
というやり方で、実行可能jarファイルにあるクラスの中から実行するクラスを指定できるという記述があったので、試してみたのですが、うまくいきません。
http://mibai.tec.u-ryukyu.ac.jp/~oshiro/Doc/java_primer/ExecutableJarfile.html
どうしても、マニフェストファイルに書かれたクラスが実行されてしまいます。
マニフェストファイルはこちらの内容になります。
Manifest-Version: 1.0
Rsrc-Class-Path: ./ geronimo-jta_1.1_spec-1.0.jar s2-dao-1.0.49.jar co
mmons-logging-1.1.jar poi-3.0-FINAL.jar aopalliance-1.0.jar s2-dao-ti
ger-1.0.49.jar junit-3.8.2.jar teeda-core-1.0.13-sp7.jar geronimo-ser
vlet_2.4_spec-1.0.jar cglib-nodep-2.1_3.jar s2-extension-2.4.40.jar s
2-tiger-2.4.40.jar easymock-2.4.jar teeda-webunit-0.2.2.jar teeda-aja
x-1.0.13-sp7.jar teeda-tiger-1.0.13-sp7.jar ojdbc6.jar easymockclasse
xtension-2.4.jar commons-lang-2.4.jar javassist-3.4.ga.jar teeda-xmlu
nit-0.1.0.jar log4j-1.2.13.jar teeda-extension-1.0.13-sp7.jar ognl-2.
6.9-patch-20090427.jar junit-4.4.jar junit-addons-1.4.jar s2-framewor
k-2.4.40.jar h2-1.0.69.jar
Class-Path: .
Rsrc-Main-Class: jp.co.tsys.sfi.batch.execute.TagOutputExecute
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
jarファイルは、Eclipseの実行可能jarファイルの出力で、エクスポートしました。
よくみると、Main-ClassがEclipseのクラスになっているので、そこが違うのかな、と予想しています。
なぜ、Eclipseのエクスポートを使っているかというと、ライブラリのjarファイル群をjarファイルに取り込むのに便利だと思ったからです。
→これさえできれば、ほかの方法で構いません。
どうかよろしくお願いします!
お礼
なるほど・・・メインクラスに指定しない場合であって、決して上書きするわけじゃないんですかね・・・。 java -classpath Foo.jar OtherMain にすると、クラスパスをずらずら指定しなければいけなくなるので、ちょっと避けたいのですが・・・。 が、結局、この方向でやるのが最もスマートになりそうな気がしてきたので、この方向で挑戦してみます。