2017-06-29 103 views
1

我正在一个web项目中工作,我遇到了文件问题(java.io.File)。问题是只有当我作为web应用程序(tomcat 7)运行时,如果我作为Java应用程序运行,则问题不存在。文件路径(JAVA EE)

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

“我解决了这个问题”通过new File("C://Users/user/dir"),但我不喜欢这个解决方案。例如,我想自动执行此操作,获取应用程序路径。我在我的机器上编码,在部署后......我不知道。

任何提示?

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

Bean.java 

@ManagedBean 
@ViewScoped 
public class Bean { 

    //ATTRIBUTES AND METHODS 

    public void addFile() { 

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

    } 
} 

对不起,我是巴西人。

+0

使用'createTempFile()'? https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#createTempFile-java.lang.String-java.lang.String-java.nio.file.attribute。 FileAttribute ...- – markspace

回答

0

您可以在网络文件夹添加资源文件夹,然后添加文件,只要你想 我测试它从添加一些样式(css)和javascript,并在jsf page.as中调用它们,例如,如果您在web /资源文件夹下创建名为x的文件夹文件中的文件

new File("files/x"); 

希望答案可以帮助你。你可以告诉我是否有任何问题再次发生

+0

我在网络/资源中创建了文件夹“文件”,并继续出现相同的问题。 –

+0

'System.out.println(new File(“temp”)。getAbsolutePath());'OUT:“C:\ Windows \ System32 \ files \ x” –

+0

不,我的意思是你应该创建文件夹在你的项目中存在的网站,这是你的家 –