0

Java アプリケーションと一緒にバッチ ファイルを (単一の jar として) 「パッケージ化」できるかどうかを知りたいです。私のアプリケーションはバッチ ファイルを実行するため、バッチ ファイルのパスを記述する必要がありました。私の懸念は、アプリケーションを展開するすべてのマシンのパスを変更する必要なく、バッチ ファイルを呼び出すことができるようにしたいということです....Eclipse を IDE として使用します。

これは正常に動作する私のコードですが、私が言ったように、たとえば通常のJavaクラスのインポートとしてバッチファイルを呼び出したいと思います....

public class LogFileScanner 
{
                private final String dir_of_log = "<My Directory>";
                private final String dir_of_batch = "<My Directory>\\Java_Tools";
                private final int toGigaByte = (1024*1024)*1024;
                private double size_in_GIGA;
                private String cur;
        .
        .
        .

    try
    {
        Runtime.getRuntime().exec("cmd /c start DailyAuto2.bat", null, getBatchFile());
    }
        .
        .
        .

    private File getBatchFile()
    {
            File batchFile = new File(dir_of_batch);
            return batchFile;
    }
}

ご意見をお寄せいただきありがとうございます。

次を使用して問題を解決しました:

private File getBatchFile()
{
    dir = LogFileScanner.class.getResource("DailyAuto2.bat").toString();
    dir = dir.replace("/", "\\\\");
    dir = dir.substring(7, dir.length()-16);
    File batchFile = new File(dir);
    return batchFile;
}
4

1 に答える 1

1

place the batch file somewhere in the source tree so that it becomes a "resource" included in the .jar. then either

  • use java.lang.Class.getResourceAsStream(String) to get the contents or
  • use java.lang.Class.getResource(String) to get a URL and then find the absolute path with help of https://stackoverflow.com/a/5643787
于 2013-06-15T21:54:06.023 に答える