Java中的父目录
请解释一下,为什么当我运行这段代码时,一切都很好,我得到了我的类的父目录:Java中的父目录,java,file,directory,Java,File,Directory,请解释一下,为什么当我运行这段代码时,一切都很好,我得到了我的类的父目录: URL dirUrl = PathsService.class.getResource(".."); 当我运行此代码时: URL dirUrl = PathsService.class.getResource("../.."); 我在dirUrl中得到null 我试着这样: URL-dirUrl=PathsService.class.getResource(“../”)尽管如此,我在dirUrl中有一个null 我怎
URL dirUrl = PathsService.class.getResource("..");
当我运行此代码时:
URL dirUrl = PathsService.class.getResource("../..");
我在dirUrl中得到null
我试着这样:
URL-dirUrl=PathsService.class.getResource(“../”)代码>尽管如此,我在dirUrl中有一个null
我怎样才能得到父母/父母/父母。。。Java中的目录?注意:
正如其他人已经指出的那样,基于对某个父目录的检索的任何功能都是一个非常糟糕的设计思想(而且几乎肯定会失败)李>
如果你分享更多关于你想要达到的目标(大局)的细节,有人可能会提出更好的解决方案
也就是说,您可以尝试以下代码:
import java.nio.file.*;
...
Path path = Paths.get(PathsService.class.getResource(".").toURI());
System.out.println(path.getParent()); // <-- Parent directory
System.out.println(path.getParent().getParent()); // <-- Parent of parent directory
导入java.nio.file.*;
...
Path Path=Path.get(PathsService.class.getResource(“.”.toURI());
System.out.println(path.getParent());// 你得到的结果完全正确
我认为您误解了class.getResource
的用法
假设您在这个包中有包com.test
和MyClass
这个MyClass.class.getResource(“.”)将为您提供执行文件的位置。表示MyClass
的位置
这个MyClass.class.getResource(“…”)
将在包结构中提升一级。因此,这将返回目录test
的位置
这个MyClass.class.getResource(“../”)
将进一步提升1级。因此,这将返回目录com
的位置
现在,这个MyClass.class.getResource(“../../..”)
将尝试进一步提升1级,但由于不存在包目录,因此将返回null
因此,class.getResource
将不会超出定义的包结构并开始访问您的计算机目录。这就是它不起作用的原因。这只在您当前的类包结构中进行搜索。您的目录结构是什么?@ExpertSystem C:\work\VCNGStruct\Flex\JavaSVGserver\out\production\JavaSVGserver\intetech。在intetech中,我有我的.class文件。您的.class文件包是什么?如何运行它?@ExpertSystem我的软件包名为intetech。我是根据想法来做的。我见过@AndrewThompson,总是抱怨!!如果我的文件在我的父目录中,请告诉我如何加载我的文件(如果我所做的是糟糕的设计思想)。你说的“加载我的文件”到底是什么意思?什么样的文件?为什么需要手动加载它们?(在这个上下文中“load”是什么意思?)我需要解析“parent-parent”目录中的xml文件我想我说“load”时表达错误,最好是“get”1。如果您的类位于包foo/bar
(唉foo/bar/YourClass.class
)中,您可以访问此子树中的所有资源,例如:例如foo/res/demo.xml
可以使用YourClass.class.getResource(“/foo/res/demo.xml”);
或…(../res/demo.xml)访问;
。如果您的资源不在包的子树中,而是在相对于系统根目录的特定路径上,您可以使用绝对路径(例如/home/me/resources/demo.xml
)直接访问它们。感谢您的回答。我能够使用MyClass.getClass()成功地找到MyClass
的位置.getResource(“.”
在eclipse中运行应用程序时。但是,当我部署应用程序并运行jar文件时,getResource(“.”
返回null。您知道对此的修复方法吗?是否有任何错误?