我正在尝试运行一个Java应用程序,但是得到了这个错误:
java.lang.ClassNotFoundException:
冒号后面是丢失的类的位置。但是,我知道那个位置不存在,因为类位于其他地方。如何更新该类的路径?和类路径有关系吗?
这是我目前找到的最好的解决方案。
假设我们有一个名为org.mypackage
的包,其中包含类:
定义此包的文件物理存储在d:\myprogram
(在Windows上)或/home/user/myprogram
(在Linux上)目录下。
注意:无论您当前的位置是什么,您都必须执行上面的Java
命令。但对于javac
来说,情况并非如此。对于编译,您甚至可以直接进入.
文件所在的目录,并直接执行javac classname.Java
。
类路径是从中加载类的位置列表。
这些“位置”可以是目录,也可以是jar文件。
对于目录,JVM将遵循预期的模式来加载类。如果我的类路径中有目录c:/myproject/,并且我试图加载一个com.mycompany.foo类,它将在类目录下查找一个名为com的目录,然后在该目录下查找一个名为mycompany的目录,最后在该目录中查找一个名为foo.class的文件。
在第二个实例中,对于jar文件,它将在jar文件中搜索该类。jar文件实际上只是一个压缩的目录集合,如上所示。如果解压缩一个jar文件,就会得到一堆遵循上述模式的目录和类文件。
所以JVM在尝试加载类定义时从头到尾遍历类路径,查找类的定义。例如,在类路径中:
C:/MyProject/类;C:/MyProject/lib/stuff.jar;C:/MyProject/lib/otherstuff.jar
JVM将尝试首先在目录类中查找,然后在stuff.jar中查找,最后在otherstuff.jar中查找。
当您获得ClassNotFoundException时,这意味着JVM已经遍历了整个类路径,但没有找到您试图引用的类。解决方法,就像Java世界中经常出现的那样,是检查您的类路径。
您可以在命令行上定义一个类路径,方法是使用Java-cp,然后使用您的类路径。在Eclipse这样的IDE中,您将有一个菜单选项来指定您的类路径。
您的类路径被破坏(这在Java世界中是一个非常常见的问题)。
根据启动应用程序的方式,您需要将参数修改为-cp
、manifest.mf中的类路径条目或磁盘布局。
我试图编写简单的java代码,在控制台上显示MongoDB集合。我在类路径中添加了mongodb-driver-3.0.0.jar。 但是当我尝试执行代码时,它在数据库连接的行处给了我以下错误: 线程“main”java.lang.noClassDeffounderror:com/mongoDb/connection/bufferprovider在com.chintan.app.mongodbjd
问题内容: 如何解析包含数据的XML 我们如何解析xml并获取包含在???中的数据? 问题答案: (http://www.java2s.com/Code/Java/XML/GetcharacterdataCDATAfromxmldocument.htm)
问题内容: 我正在使用NewtonsoftJson库来解析json,但我不知道如何使用它。我使用JObject解析了字符串。当我在即时窗口中输出JObject实例的值时,我得到了:- 我应该怎么做才能获得这个工作的价值? 问题答案: 我个人更喜欢将JavaScriptSerializer与.NET环境中的JSON一起使用。默认情况下,它将返回Dictionary结果,但可用于解析到自定义对象(或者
exception=org.springframework.jdbc.badsqlgrammareXception:gulfnet.tts.inthanon.data.product.mapper.catalogmapper.insertCommunityItemlist(批索引#1)失败。原因:java.sql.BatchUpdateException:批条目0 INSERT ALL被中止。调用
当我尝试调试和部署我的android应用程序(在android Studio0.9中)时,我得到以下错误: 为了使事情清楚,这里有一个我的行动简史: null 从那时起,我就在将multiDex添加到我的项目中之后,不断地得到所描述的错误,方法如下:使用Gradle将外部库拆分到单独的dex文件中,以解决Android Dalvik 64K方法的限制。 这是我的build.gradle文件: 我还
我很难理解如何解析javax.ws.rs.core.Response。有些人指出使用InputStream,但我不理解它是如何工作的,因为返回类型是响应。getEntity()的类型为Object。例如: NetBeans 抱怨说,我需要将 Object 类型转换为 InputStream。响应将由XML组成,我只是希望能够使用DOM解析它。我无法从javax.ws.rs.core.Respons