使用Java在Openshift上打开一个文件

时间:2016-06-13 18:41:21

标签: java openshift

我有一个DIY墨盒。我的项目结构看起来像

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

myProgram.jar使用“资源”文件夹中的文件。 代码看起来像

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

该程序通过动作钩子'start'运行:

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

问题是我无法处理文件。 如代码注释中所述,我在listFiles()上得到null。

如果我手动在Openshift上运行程序(ssh到服务器/ $ OPENSHIFT_REPO_DIR / diy /并运行java -jar ...)它可以工作,但它不能通过action_hooks工作。

提前谢谢!

1 个答案:

答案 0 :(得分:1)

我使用Openshift env变量' OPENSHIFT_REPO_DIR'解决了这个问题。 而不是使用相对路径

new File("resources");

我使用绝对

String absolutePath = System.getenv("OPENSHIFT_REPO_DIR");
new File(absolutePath + "diy/resources")