GVKun编程网logo

Java Jar文件:使用资源错误:URI不分层(java请求的资源不可用)

1

本文将为您提供关于JavaJar文件:使用资源错误:URI不分层的详细介绍,我们还将为您解释java请求的资源不可用的相关知识,同时,我们还将为您提供关于android–Parse.com,Parse

本文将为您提供关于Java Jar文件:使用资源错误:URI不分层的详细介绍,我们还将为您解释java请求的资源不可用的相关知识,同时,我们还将为您提供关于android – Parse.com,Parse SDK下载SDK中的NO Parse-1.10.3.jar文件、Android:添加项目作为库,在构建路径>库>库项目中获取(缺少).jar文件、Hadoop 2.0 JAR文件、java – NullPointerException当尝试运行.jar文件的实用信息。

本文目录一览:

Java Jar文件:使用资源错误:URI不分层(java请求的资源不可用)

Java Jar文件:使用资源错误:URI不分层(java请求的资源不可用)

如何解决Java Jar文件:使用资源错误:URI不分层?

你不能做这个

File src = new File(resourceUrl.toURI()); //ERROR HERE

它不是文件!从ide运行时,不会有任何错误,因为你没有运行jar文件。在IDE中,类和资源被提取到文件系统上。

但是你可以通过InputStream以下方式打开一个:

InputStream in = Model.class.getClassLoader().getResourceAsstream("/data.sav");

删除"/resource"。通常,IDE在文件系统类和资源上分开。但是创建jar时,它们会全部放在一起。因此,文件夹级别"/resource"仅用于类和资源分离。

当从类加载器中获取资源时,必须指定该资源在jar中的路径,即真正的包层次结构。

解决方法

我已将我的应用程序部署到jar文件。当我需要将数据从一个资源文件复制到jar文件外部时,请执行以下代码:

URL resourceUrl = getClass().getResource("/resource/data.sav");
File src = new File(resourceUrl.toURI()); //ERROR HERE
File dst = new File(CurrentPath()+"data.sav");  //CurrentPath: path of jar file don''t include jar file name
FileInputStream in = new FileInputStream(src);
FileOutputStream out = new FileOutputStream(dst);
 // some excute code here

我遇到的错误是:URI is not hierarchical。在IDE中运行时,我不会遇到此错误。

如果我将上述代码更改为对StackOverFlow上其他帖子的一些帮助,请执行以下操作:

InputStream in = Model.class.getClassLoader().getResourceAsStream("/resource/data.sav");
File dst = new File(CurrentPath() + "data.sav");
FileOutputStream out = new FileOutputStream(dst);
//....
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) { //NULL POINTER EXCEPTION
  //....
}

android – Parse.com,Parse SDK下载SDK中的NO Parse-1.10.3.jar文件

android – Parse.com,Parse SDK下载SDK中的NO Parse-1.10.3.jar文件

我已经做了多种故障排除来解决这个问题.无济于事.我疯了,试图解决这个问题,它只是不存在.当我下载sdk并从zip中提取它时,有一个bolt jar文件,但不是常规的parse jar文件,但是属性文件在sdk中…而不是parse jar文件..

解决方法

为什么你仍然使用旧的方法,因为Parse SDK变成了 open source你可以通过在build.gradle中添加这一行来添加SDK,它更容易和更清洁.
dependencies {
    compile 'com.parse:parse-android:1.12.0'
}

或者如果您愿意,可以下载the latest JAR.

Android:添加项目作为库,在构建路径>库>库项目中获取(缺少).jar文件

Android:添加项目作为库,在构建路径>库>库项目中获取(缺少).jar文件

好的,我一直试图找到一个解决方案,现在大约半天.

我在工作区中有两个项目.一个是主要的,我称之为Alpha,另一个用作主要的库,我称之为Delta.

Delta有“is Library”检查标记,并且没有错误(只有带感叹号的黄色三角形).

Alpha已将Delta添加为库(在“项目属性”中的Android选择下).一旦完成,我会得到一个巨大的,肥胖的红色感叹号.在Alpha的构建路径中,在“库”选项卡下,“库项目”中有一个红色的“x”.在扩展该选项后,我看到:

delta.jar - /Users/.../Delta/bin (missing)

我真的不明白为什么会失踪. 1,bin文件夹在那里. 2,我正在导入一个项目库,而不是.jar.即使它正在创建项目库的.jar文件,它似乎编译正确,Delta没有错误.

我真的在黑暗中.请帮忙.

谢谢

解决方法

如果您运行的是SDK Tools,版本14和ADT 14.0.0及更高版本,则对基于jar的库的构建方式进行了更改.我鼓励你阅读图书馆项目改造 here

Hadoop 2.0 JAR文件

Hadoop 2.0 JAR文件

尝试实例化ConfigurationMap / Reduce程序中的对象时遇到意外错误。

错误如下:

java.lang.NoClassDefFoundError:org / apache / commons / logging / LogFactory

我正在使用Hadoop 2.2.0。该程序在Hadoop的早期版本中运行良好。但是,现在我需要为版本2编写此作业提交者,并且这似乎不起作用。

附带说明,我找不到此版本的所有必需的JAR文件。我已阅读以下针对类似问题的解决方案:hadoop 2中的hadoop
jar文件在哪里?。但是,这对我不起作用。它失败,并显示上述运行时错误。

我尝试使用较旧的JAR文件来解决这些问题,但新错误不断发生。

有谁能解决这个问题?我正在使用NetBeans,如果由于某些原因有什么不同的话。

答案1

小编典典

我通过从commons.apache目录和Maven存储库下载JAR文件解决了该问题。每次我向项目添加新的JAR时,应用程序都会崩溃,并显示一个不同的错误(找不到另一个类),直到我从Maven存储库下载了所有JAR文件。从在线存储库下载了许多JAR文件后,大多数与JAR相关的问题似乎已解决。

java – NullPointerException当尝试运行.jar文件

java – NullPointerException当尝试运行.jar文件

我刚刚开始学习 java,只知道少量的代码,但是这仍然是一个简单的程序.这更是一个恶作剧程序,但大多只是测试我是否可以制作一个jar文件.

这是代码:

import java.awt.*;  
import java.awt.event.*;  
import java.lang.*;  
import java.util.Random;  
public class randommouse {  
    public static void main(String[] args) {  
        for (int i=1; i<1000; i++) {  
            Random rand = new Random();  
            int w = rand.nextInt(1024) + 1;  
            int h = rand.nextInt(768) + 1;  
            int t = rand.nextInt(2000) + 1;  
            try {  
                Robot r = new Robot();  
                r.mouseMove(w,h);  
                Thread.sleep(t);  
            } catch (AWTException e) {}  
            catch (InterruptedException e) {}  
            catch (NullPointerException e) {}  
        }  
    }  
}

我将其保存到名为randommouse.java的文件中,
然后使用它进行编译

javac randommouse.java

这是有效的,当我运行它

java randommouse

它也很好.

所以我尝试创建一个jar文件.我使用命令

jar cvf randommouse.jar randommouse.class

它的工作原理之后,我双击jar文件,并出现错误Java异常.
所以我用cmd运行它

java -jar randommouse.jar

并得到这个错误

F:\Java>java -jar randommouse.jar
Exception in thread "main" java.lang.NullPointerException
        at sun.launcher.LauncherHelper.getMainClassFromJar(LauncherHelper.java:3
99)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:463)

F:\Java>

我需要提出一个论据,如果是,我该怎么做,怎么办?

先谢谢你
山姆

解决方法

从 the JDK doc:

In order for this option to work,the manifest of the JAR file must
contain a line of the form

Main-Class: classname

Here,classname
identifies the class having the public static void main(String[] args)
method that serves as your application’s starting point. See the Jar
tool reference page and the Jar trail of the Java Tutorial for
information about working with Jar files and Jar-file manifests.

When you use this option,the JAR file is the source of all user classes,and other user class path settings are ignored.

我们今天的关于Java Jar文件:使用资源错误:URI不分层java请求的资源不可用的分享已经告一段落,感谢您的关注,如果您想了解更多关于android – Parse.com,Parse SDK下载SDK中的NO Parse-1.10.3.jar文件、Android:添加项目作为库,在构建路径>库>库项目中获取(缺少).jar文件、Hadoop 2.0 JAR文件、java – NullPointerException当尝试运行.jar文件的相关信息,请在本站查询。

本文标签: