Tag: filepath

从绝对路径中提取相对路径

这是一个看似简单的问题,但我无法以干净的方式进行。 我有一个文件路径如下: /这/是/的/绝对/路径/到/的/位置/的/我的/文件 我需要的是从上面给出的路径中提取/ of / my / file,因为那是我的相对路径。 我想这样做的方式如下: String absolutePath = “/this/is/an/absolute/path/to/the/location/of/my/file”; String[] tokenizedPaths = absolutePath.split(“/”); int strLength = tokenizedPaths.length; String myRelativePathStructure = (new StringBuffer()).append(tokenizedPaths[strLength-3]).append(“/”).append(tokenizedPaths[strLength-2]).append(“/”).append(tokenizedPaths[strLength-1]).toString(); 这可能会满足我的直接需求,但有人可以提出一种更好的方法从java中提供的路径中提取子路径吗? 谢谢

在运行时确定JVM可执行文件的位置

如何在运行时获取当前运行的JVM的可执行文件的位置? 我想使用ProcessBuilder类将另一个JVM实例化为子进程。 我知道有java.home系统属性,但是这没有指定JVM可执行文件的位置。 我知道我可以做这样的事情来获得路径: System.getProperties().getProperty(“java.home”) + File.pathSeparator + “bin” + File.pathSeparator + “java” 此代码与平台无关,因为Windows可执行文件的名称是java.exe ,而不是java 。 有没有办法获得JVM可执行文件的路径,将平台的特性考虑在内?

Java的文件路径或文件位置 – 新文件()

我的项目有以下结构。 在Eclipse中: myPorjectName src com.example.myproject a.java com.example.myproject.data b.xml 在a.java ,我想读取b.xml文件。 我怎样才能做到这一点? 具体来说,在a.java ,我使用了以下代码: DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder(); Document doc = docBuilder.parse (new File(“data/b.xml”)); 这段代码找不到b.xml 。 但是,如果我将路径更改为src/com/example/myproject/data/b.xml那么它可以正常工作。 当前位置似乎位于我的项目文件的根目录中。 但我看到其他人的例子, 如果b.xml和a.java在同一个文件夹中,那么我们可以直接使用new File(“b.xml”) 。 但我尝试将b.xml放在b.xml的同一个文件夹中,而不是放入子文件夹,但它仍然不起作用 。 如果这样可行,那么在我的情况下,我应该能够使用new File(“data/b.xml”) ,对吗? 我真的不明白为什么这不起作用。

Java:Windows文件上的File.toURI()。toURL()

我运行的系统是Windows XP,JRE 1.6。 我这样做: public static void main(String[] args) { try { System.out.println(new File(“C:\\test a.xml”).toURI().toURL()); } catch (Exception e) { e.printStackTrace(); } } 我得到这个: file:/C:/test%20a.xml 为什么给定的URL在C:之前没有两个斜杠? 我期待file://C:… 这是正常的行为吗? 编辑: 来自Java源代码:java.net.URLStreamHandler.toExternalForm(URL) result.append(“:”); if (u.getAuthority() != null && u.getAuthority().length() > 0) { result.append(“//”); result.append(u.getAuthority()); } 似乎文件URL的Authority部分为null或为空,因此跳过双斜杠。 那么URL的权限部分是什么,文件协议中是否真的没有?

Java:从FilePath获取URI

我对Java知之甚少。 我需要在Windows上从FilePath(String)构造一个URI的字符串表示。 有时我得到的inputFilePath是: file:/C:/a.txt ,有时它是: C:/a.txt 。 现在,我正在做的是: new File(inputFilePath).toURI().toURL().toExternalForm() 上面的方法适用于没有file:/前缀的路径,但对于带有file:/前缀的路径file:/ ,。 toURI方法通过附加当前dir的值将其转换为无效的URI,因此路径变为无效。 请通过建议正确的方法为这两种路径获取正确的URI来帮助我。