文件路径(JAVA EE)

File path (JAVA EE)

我在一个网络项目中工作,我遇到了文件问题(java.io.File)。只有当我运行 as web application(tomcat 7),如果我运行 as Java application,问题不存在。

当我实例化一个文件时,new File("dir");,它的路径变成了 C://Windows/System32/dir,这样,我什么也做不了,也许是因为没有 Windows特权。

"I solved the problem" 传递 new File("C://Users/user/dir"),但我不喜欢这个解决方案。我想自动执行此操作,例如获取应用程序路径。我在我的机器上编码,在部署之后......我不知道。

有什么建议吗?

这是我遇到问题的项目部分,一个 jsf bean。我的视图调用方法 addFile() 来保存我从视图中收到的文件。它正在工作,但我必须像我之前说的那样通过路径,就像下面的代码一样。路径转到 Windows 目录 System32

Bean.java

@ManagedBean
@ViewScoped
public class Bean {

    //ATTRIBUTES AND METHODS

    public void addFile() {

        File temporaryFile = new File("temporary");
        //...
        //...
        //...

    }
}

抱歉我的英语不好,我是巴西人。

文件 class 中有一个方法完全符合您的要求:https://docs.oracle.com/javase/8/docs/api/java/io/File.html#createTempFile-java.lang.String-java.lang.String-

或者您可以自己 assemble 文件路径:

File myTempFile = new File(System.getProperty("java.io.tmpdir"),"temporary");

您可以在web文件夹中添加文件夹资源,然后根据需要添加文件 我通过添加一些样式 (css) 和 javascript 来测试它,如果您在 web/resources 文件夹 [=11] 下的文件夹文件中创建名为 x 的文件,则在 jsf page.as 示例中调用它们=]

new File("files/x");

希望回答对你有帮助,如果再有问题可以告诉我