必要なライブラリに関して「自己完結型」のjarファイルを作成しようとしています。
したがって、次のantファイルを作成しました。
<project name="srv" default="prod">
<target name="prod">
<jar destfile="build/ServerApplication.jar" basedir="bin/">
<restrict>
<name name="**/*.class"/>
<archives>
<zips>
<fileset dir="lib/" includes="**/*.jar"/>
</zips>
</archives>
</restrict>
<manifest>
<attribute name="Class-Path" value="." />
<attribute name="Main-Class" value="my.package.ServerApplication" />
</manifest>
</jar>
</target>
</project>
しかし、使用してアプリケーションを起動しようとすると
> java -jar ServerApplication.jar
エラーが発生する
jdbc:mysql://localhost/db?user=root&password= に適したドライバーが見つかりません
これはcom.mysql.jdbc
、jar 内のパッケージが見つからないためだと思います。どうしてこれなの?Class-Pathをに設定すると.
、jar はその jar 内のすべてのクラスを見つけることができませんか?
逆コンパイラで jar を開きました。すべてのクラスが必要な場所にあります。ここを参照してください。
ここで何がうまくいかないのですか?私のマニフェストは次のようになります。
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
Created-By: 1.7.0_07-b10 (Oracle Corporation)
Main-Class: my.package.ServerApplication
Class-Path: .