我有一个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工作。
提前谢谢!
答案 0 :(得分:1)
我使用Openshift env变量' OPENSHIFT_REPO_DIR'解决了这个问题。 而不是使用相对路径
new File("resources");
我使用绝对
String absolutePath = System.getenv("OPENSHIFT_REPO_DIR");
new File(absolutePath + "diy/resources")