製品の機能の 1 つとして、プログラムで JAR ファイルを作成しようとしています。私は達成するために以下のコードを使用しています:
//Assume all necessary imports and variables are declared
FileOutputStream fOut = new FileOutputStream(jarFilePath);
Manifest manifest = new Manifest();
manifest.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0");
JarOutputStream jarOut = null;
FileInputStream reader = null;
for(String pathToJava:pathToJavaFile) {
jarOut = new JarOutputStream(fOut,manifest);
reader = new FileInputStream(pathToJava);
jarOut.putNextEntry(new ZipEntry(pathToJava));
}
while ((readCount = reader.read(buffer, 0, bufferSize)) >= 0) {
if(readCount > 0) {
jarOut.write(buffer,0,readCount);
}
}
これは完全に機能し、jar ファイルを作成できます。問題は次の行にあります:
が のような値を持っているjarOut.putNextEntry(new ZipEntry(pathToJava));
と仮定すると、 のような jar ファイル内にフォルダーを作成し、その中に FooBar.java を配置します。私が欲しいのは、それを次のような特定のフォルダー内に置くことができるはずですか?pathToJava
c:/foo/bar/FooBar.java
c: --> foo --> bar
FooBar.java
sources
JarOutputStream
ファイルを特定のフォルダに配置するように構成できる方法はありますか? または、他に探すべきオプションはありますか? プログラムで使用できますjava -jar
が、ユーザーがjdkをインストールしているかどうかを見つけるのが複雑であるため、後退しています。誰でもこれで私を案内できますか?