我在WebLogic中部署了一个Web应用程序。在我的一个java文件中,我尝试读取PleaseNote.txt
如下:
File file = new File("PleaseNote.txt");
现在WebLogic正在从其域名目录中获取PleaseNote.txt
。我的问题是:
任何WeLogic专家,请回复。
谢谢Chaitanya
使用这种方式读取文件会降低应用程序的可移植性并且不够健壮:如果在另一个应用程序服务器上部署应用程序,则必须再次找到放置PleaseNote.txt
文件的位置或代码将中断。
这打破了WORA(一次写入,随处运行)原则,我认为这是一种不好的做法。
所以,我宁愿将此文件放在类路径中,并使用ClassLoader#getResourceAsStream(String name)
来读取它。
它是域目录,因为它对应于user.dir系统变量的值,如果路径未明确设置,则java读取/写入文件的位置。
为什么域名目录对应user.dir?因为你在这里启动Weblogic服务器。
关心Alexander Rozhkov
当使用新的File(..)时,java会在启动java.exe的目录中查找该文件。在weblogic域的情况下,这是域目录。这是默认的java行为。
如果要加载与要加载的类文件位于同一目录中的文件,请使用ClassLoad.getResourcesAsStream()。如果要从类路径加载资源,请使用相同的方法,但在文件前面加上“/”。