2016-06-13 17 views
0

DIYカートリッジがあります。私のプロジェクト構造は次のようになりますJavaを使用して開閉式でファイルを開く

MY_PROJECT 
-diy 
    -myProgram.jar 
    -resources 
    -file1, file2... 
-.openshift 
    -action_hooks 
    -start 

myProgram.jarは、 'resources'フォルダのファイルを使用します。 コードが

File imageFolder = new File("resources"); 
    System.out.println("Image Folder read:"+imageFolder.canRead()); //canRead returns false 
    File[] listOfFiles = imageFolder.listFiles(); // here I get null 

のように見えるプログラムは、アクションフックによって「スタート」を実行します:

nohup java -jar $OPENSHIFT_REPO_DIR/diy/*.jar --server.port=${OPENSHIFT_DIY_PORT} --server.address=${OPENSHIFT_DIY_IP} & 

問題は、私はファイルを扱うことができないんだということです。 コードコメントで説明したように、私はlistFiles()にnullを返します。

私がOpenshiftで手動でプログラムを実行すると(ssh to server/$ OPENSHIFT_REPO_DIR/diy /を実行してjava -jar ...)動作しますが、action_hooksで動作しません。

ありがとうございます!

答えて

1

私はOpenshift env変数 'OPENSHIFT_REPO_DIR'の問題を解決しました。 代わりに相対パスを使用する

new File("resources"); 

Iは絶対使用

String absolutePath = System.getenv("OPENSHIFT_REPO_DIR"); 
new File(absolutePath + "diy/resources") 
関連する問題