jcreatejar ファイル/ディレクトリからJava ARchive (JAR) を作成

## 呼び出し手順

                jcreatejar(jarFilePath, filePaths[, rootPath[, manifestFilePath]])

## パラメータ

jarFilePath

  JARのファイルパスの説明を有する文字列.

filePaths

  JARに含まれる 入力ファイル/ディレクトリのパスを有する 行/列文字列行列

rootPath

  オプションの文字列で, 全ての入力ファイル/ディレクトリのJARにおける 相対パスを計算する際に使用されるパスを設定.

manifestFilePath

  オプション文字列で, JARに含まれるmanifestデータのファイルパスを指定.

## 説明

一連の入力ファイル/ディレクトリからJAR (Java ARchive) ファイルを 作成します. 典型的な使用例は, (Javaクラスを含む) Javaパッケージです. 例えば, 関数 ilib_build_jar は Javaソースを有するツールボックスを構築する際に `jcreatejar`を使用します. しかし, `jcreatejar` は任意の型の ファイルを圧縮する際にも使用できます (例えば, ネットワーク経由でファイルを送信する場合).

多くの場合, JARファイルは単一のファイルツリーから作成され, JARファイル内のパスツリーは入力パスツリーと同じです. このため, `jcreatejar`に 一連のファイルとディレクトリが指定された場合, これらのファイル/ディレクトリのルートパスを自動的に求め, ルートパスに対して相対的にJAR内のパスを設定します. ルートパスは`rootPath`引数により 明示的に指定することも可能です.

JARファイルはJARの内容を記述するデータを含むmanifestを有します. JAR内では, このmanifestは`META-INF`フォルダの ファイル`MANIFEST.MF` です. このmanifestファイルは自動的に入力ツリーのこの場所で見つけるか, `manifestFilePath` 引数でmanifestのパスを 指定することができます. manifestファイルが見つからない場合,デフォルトのmanifestが JAR内で作成されます. 注意: manifestが指定された場合, version 属性を有する必要があります. そうでない場合, JAR内のmanifestは空になります.

引数 `jarFilePath` に保存された JARディストリビューションのファイルパスは は拡張子 `.jar`を有している必要があります. 出力先のJARファイルが既に存在している場合, 上書きされます.

## 例

    // Example of jcreatejar: create a JAR containing a Java package

    // Create a directory for package sources
    jar_src_path = fullfile(TMPDIR, 'jarPackageExample');
    mkdir(jar_src_path);

    // Create a Java source and compiles it to a Java class
    function createJavaClass(class_name, code)
        class_src_path = fullfile(jar_src_path, class_name + '.java');
        fd = mopen(class_src_path, 'wt');
        mputl(code, fd);
        mclose(fd);
        jcompile(class_src_path);
    endfunction

    // Create a class in the root of the package
    createJavaClass('Class1', msprintf( ..
        'package jarPackageExample;\n' + ..
        'public class Class1 {}'));

    // Create another class in a folder of the package
    mkdir(fullfile(jar_src_path, 'folder'));
    createJavaClass('folder/Class2', msprintf( ..
        'package jarPackageExample.folder;\n' + ..
        'public class Class2 {}'));

    // The compiled package is in TMPDIR in JIMS folder
    jar_tmp_path = fullfile(TMPDIR, 'JIMS/bin/jarPackageExample');

    // Create the package JAR
    jar_dest_path = fullfile(TMPDIR, 'jarPackageExample.jar');
    jcreatejar(jar_dest_path, jar_tmp_path);

    // Example of jcreatejar: create a JAR containing images, and add a manifest

    // Create the manifest file
    manifest_path = fullfile(TMPDIR, 'MANIFEST.MF');
    manifest = msprintf('Manifest-Version: 1.0\nName: Scilab images');
    fd = mopen(manifest_path, 'wt');
    mputl(manifest, fd);
    mclose(fd);

    // Create the JAR
    jar_src_path = fullfile(SCI, 'modules/gui/images/icons');
    jar_dest_path = fullfile(TMPDIR, 'jarImagesExample.jar');
    jcreatejar(jar_dest_path, jar_src_path, '', manifest_path);

## 参照

- jcompile
- javaclasspath

## 履歴

5.5.0 関数が導入されました.