私はライブラリとしてdcm4cheを持つ古いJavaアプリケーションをmantainingしています。 dcm4cheライブラリは単なるjarファイルではありません。これは、jarファイルと、いくつかのプロパティファイルとクラスを持つほかのフォルダとを異なるフォルダに含むフォルダです。私はWindowsXPとJava 1.6を使用しています。jarファイル内のフォルダをクラスパスに入れる方法は?
set CLASSPATH=.;%PROJ_HOME%\classes;^
%THIRDPARTY_HOME%\dcm4che;^
%THIRDPARTY_HOME%\dcm4che\classes;^
%THIRDPARTY_HOME%\dcm4che\resources;^
は今、私は簡単にするために1つのjarファイルにそれらのすべてを配置しよう:私たちは私たちのアプリケーションを実行すると
、我々はこのような何かをすることによって、クラスパスにこれらのフォルダ、jarファイルを配置する必要がありますソース管理。 だから私は、次の内容のmanifest.txtファイルを作成します。その後、私はjarファイルを実行してdcm4che.jarを作成
Class-Path: classes;resources;lib\dcm4che.jar;getopt.jar
を:
jar -cfm dcm4che.jar manifest.txt *
dcm4che.jarが作成されます。 Iすべてのコンテンツを抽出して、結果を確認し、マニフェストファイルをチェックして、私のクラスパスがあります:
Manifest-Version: 1.0
Class-Path: classes;resources;lib\dcm4che.jar;getopt.jar
Created-By: 1.6.0_25 (Sun Microsystems Inc.)
その後、私は新しい生成dcm4che.jarを指し、それらの古いエントリを削除するには、アプリケーションのクラスパスを変更します。
私が実行すると、NoClassDefFoundErrorが返されます。しかし、そのクラスは新しい作成されたjarファイル内のclassesフォルダの下にあります。
私に何かが不足していますか?
あなたは今、私はそう思っていません。これを確認してください:http://download.oracle.com/javase/tutorial/deployment/jar/index.html – 5YrsLaterDBA