我有一个DIY墨盒。我的项目结构看起来像
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到server / $ OPENSHIFT_REPO_DIR / diy /并运行java -jar ...),它可以工作,但不能通过action_hooks来工作。
先感谢您!
最佳答案
我解决了Openshift环境变量'OPENSHIFT_REPO_DIR'的问题。
而不是使用相对路径
new File("resources");
我用绝对
String absolutePath = System.getenv("OPENSHIFT_REPO_DIR");
new File(absolutePath + "diy/resources")