2017-06-06 16 views
1

私のプロジェクトでは、libavを使用してビデオとオーディオを変換する必要があります。だから私は私のプロジェクトにlibavツールを含める必要があります。 は、これは私のプロジェクト構造である:Grails WARはJavaクラスのファイルを見つけることができません

grails-project 
| 
|-- .classpath 
|-- .groovy 
|-- .project 
|-- .settings 
|-- application.properties 
|-- grails-app 
|-- lib 
| |-- avconv -->>> `This is the folder which contains libav tools` 
|-- scripts 
|-- src 
| |-- groovy 
| |-- java 
| | |-- Converter.class -->>> `This is my converter class` 
|-- target 
|-- test 
|-- web-app 

はまた、私はavconv4javaあるのLibavのためのJavaインタフェースを使用しています。 それはのLibavのコマンドを実行するためのプロセスを実行し、私はこのようなのLibavのパスを設定します。それはProcessBuilderをへの引数としてパスを渡すと、それはなどで

を、それを起動するJavaインタフェース内

開発環境は非常によく動作します。私は戦争を展開し、私は次のエラーを得たビデオを変換しようとすると、しかし:

java.io.IOException: Cannot run program "lib/avconv/bin/avconv.exe": CreateProcess error=2, The system cannot find the file specified 

私は私の展開構造を見てはavconvフォルダがlibフォルダではないことが分かりました。だから私はBuildConfigにこれらの行を追加しました:

grails.war.resources = { stagingDir, args -> 
    copy(todir: "${stagingDir}/WEB-INF/lib/avconv") { 
     fileset(dir: "lib/avconv", includes:"**") 
    } 
} 

を今はavconvしかし、私はまだ同じエラーを取得し、開発環境に様libフォルダです。それを機能させるために私は何をすべきですか?

何か助けていただければ幸いです。 ありがとうございます。

Grailsのバージョン:2.4.5 にTomcat 7にデプロイのIntelliJ に開発

答えて

0

相対パスは、Tomcatのフォルダのルートから開始すると予想されます。問題のファイルがクラスパスにあると仮定すると、getResourceにアクセスしてアクセスし、絶対パスをAVCommandに渡すことができます。

+0

ありがとうございます。私は絶対的な道を与えることによってそれを解決したので、私はこれを未来の出入りの答えとして受け入れるでしょう:)私は以前あなたが答えてくれたことを祈っています:)))) – ayZagen

関連する問題