有一个maven项目A。执行mvn全新安装后,将构建项目,并且该jar在我的本地存储库中可用,即c:\ repository \ com \ stackoverflow \ A \ A.jar
A.jar包含几个类和这些类使用的xml文件
从另一个Maven项目中,我正在调用使用一个XML文件的类中的一种方法。
代码是:
public File xmlFilder(String xmlAbsolutePath) {
File f = new File(xmlAbsolutePath);
return f;
}
第二个项目位于我的D盘中。在获得绝对路径时,我得到的是\ com \ stackoverflow \ A \ res \ p.xml,这是正确的绝对路径。
但是,如果在第3行添加以下代码,则会得到如下信息:
public File xmlFilder(String xmlAbsolutePath) {
File f = new File(xmlAbsolutePath);
System.out.println("AbsolutePath----"+f.getAbsolutePath()); ---> D:\com\stackoverflow\A\res\p.xml
System.out.println("getPath------------"+f.getPath()); ---> \com\stackoverflow\A\res\p.xml
System.out.println("exists--------------"+f.exists()); ----> false
return f;
}
谁能让我知道我要去哪里错了。为什么不从C驱动器中存在的存储库中选择xml。
如果A类(捆绑在A.jar
中)想要从jar中加载xml并尝试以第一个代码示例中所示的方式访问xml,那么它将无法p.xml
在jar中访问。它访问该位置的文件。
很容易测试是否属于您的情况。创建jar之后,暂时p.xml从文件系统中删除并运行A类。它将无法加载。
当类需要加载捆绑在jar中的资源时,它不使用,File而是使用类加载器。
根据您提供的名称,我假设您的类A在软件包中:com.stackoverflow.A xml
文件在软件包中com.stackoverflow.A.res
以下所有方法将使用您的xml加载流
InputStream is = null;
// Using class - relative to the class location because path does not start with "/"
is = SimpleWriter.class.getResourceAsStream("res/p.xml");
// Using class - absolute path because path starts with "/"
is = SimpleWriter.class.getResourceAsStream("/com/stackoverflow/A/res/p.xml");
// Using classloader - path is *always* absolute. Note that leading "/" is missing
is = SimpleWriter.class.getClassLoader().getResourceAsStream("com/stackoverflow/A/res/p.xml");
我正在用RubyonRails编写这个应用程序,我将应用程序设置为从特定路径提供GeoJson。我想让Mapbox从指定路径获取GeoJson,并将其添加到地图中。下面是我创建地图的javascript代码 当我导航到时,我得到以下响应。 地图加载得很好,但没有形状。令人沮丧的是,浏览器中没有错误,GeoJson在GeoJson.io上签出。 我做错了什么?
问题内容: 是否有任何API可以从绝对文件路径检索文件名? 例如来自 我知道它可以像字符串操作一样工作, 但是我想知道还有没有像Java 这样的“正式”方式可以做到这一点。 NodeJS从绝对路径获取文件名? 问题答案: 使用模块的方法: 这是上面示例的文档。
问题内容: 使用此代码设置类路径 以下是AwsCredentials.properties文件的格式 以下是我得到的例外 问题答案: 因为您的AWS开发工具包无法加载您的凭证,所以您将收到此异常。您应该执行的操作是转到“首选项”,然后转到“ AWS”并添加您的秘密密钥和访问密钥。这样您的项目就可以检索两个密钥。
我试图从画廊获取图像并存储到数据库的路径以供进一步使用。文件路径保存在数据库中,但我无法在ImageView上获得视图。 文件路径为: /storage/emulated/0/DCIM/Camera/image.jpg 这里我得到的图像路径是imgS 在这里,我试图检索路径并在图像视图中显示图像。 注意:文件存在于路径中。
问题内容: 如果使用绝对路径,则无法将整个目录移动到新位置。如果使用相对路径,则无法将单个文件移动到新位置。 这里有什么解决方案?您是否设置了一个包含根路径并从那里开始的配置文件?还是您有类似的规则:永不移动文件? 我在某些项目中看到人们使用dirname( FILE )。我的意思是,为什么不简单地将其删除,因为目录名还是相对的(取决于文件所在的位置)? 问题答案: 您应该使用一个配置文件,该配置
我也试着做 而我不断得到这个结果。