1

VanillaWindowsProcess に基づく独自のエンティティを構築しようとしています。アイデアは、Windows マシンのインストール後に、ファイルにあるいくつかの powershell コマンドを実行することです。

リソースを取得するために別の Java プロジェクトで何度も使用したものを試しました。

private void runInstallationScript() {
    List<String> lines;
    try {
        lines = FileUtils.readLines(
                new File(TalendWindowsProcessWinRmDriver.class.getResource("/my/path/file.txt").getFile()),
                "utf-8");
        executePsScript(lines);
    } catch (IOException e) {
        LOG.error("Error reading the file: ", e);
    }
}

しかし、私は常に以下を取得しています:

ava.io.FileNotFoundException: ファイル 'file:/opt/workspace/incubator-brooklyn/usage/dist/target/brooklyn-dist/brooklyn/lib/dropins/myProject-0.0.1-SNAPSHOT.jar!/my/path/ file.txt' が存在しません

ファイルがそのパスのjarファイルにあるため、奇妙です。私は (Apache Brooklyn インフラストラクチャなしで) テストを行い、動作しますが、そうでない場合は動作しません。

プロジェクトは Maven の標準構造に従い、ファイル自体は src/main/resources/my/path/file.txt の下にあります。

何か間違っていることはありますか?または、そのファイルを取得する別の方法がありますか? どんな助けでも大歓迎です。

4

1 に答える 1

0

Filejar 内のリソースにオブジェクトとしてアクセスすることはできません。InputStreamアクセスするには(または)を使用する必要がありURLます。

を既に使用しているため、 (または) を入力として受け入れるようgetResourceにメソッドを変更する必要があります。FileUtils.readLinesInputStreamURL

ソース コードにアクセスできない場合は、独自のメソッドを作成するかFiles.readAllLines、Java >= 7 に使用できます。

于 2015-09-23T08:39:45.057 に答える