java ubuntu 中的 java.lang.ClassNotFoundException [关闭]

Posted

技术标签:

【中文标题】java ubuntu 中的 java.lang.ClassNotFoundException [关闭]【英文标题】:java.lang.ClassNotFoundException in java ubuntu [closed] 【发布时间】:2016-01-12 04:30:41 【问题描述】:
java.lang.ClassNotFoundException: org.apache.hadoop.hive.jdbc.HiveDriver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at com.testdemo.TestFile.main(TestFile.java:13)

我已在库中添加了所有必需的 jar 文件,但导致相同的错误

【问题讨论】:

你在类路径中添加了HiveDriver??? 是的,但它不起作用... 【参考方案1】:

在您的类路径中添加 hive-jdbc jar。它将解决您的问题。

【讨论】:

【参考方案2】:

java.lang.ClassNotFoundException 表示一个类被引用但未找到。

com.testdemo.TestFile.main 中引用了org.apache.hadoop.hive.jdbc.HiveDriver 类,但com.testdemo.TestFile.main 找不到org.apache.hadoop.hive.jdbc.HiveDriver。这通常是由于他们引用的类不在被引用的位置,或者在项目文件的同一层。

希望这会有所帮助。

【讨论】:

【参考方案3】:

这是因为 hive-jdbc jar 不在类路径中。

解决方案 1:您使用 -classpath 参数。您可以使用相对路径或绝对路径。

bash$ java -classpath path/to/hive-jdbc-jar/file MyMainClass

方案二:也可以通过环境变量指定classpath,见PATH and CLASSPATH:

bash$ export CLASSPATH="path/to/hive-jdbc-jar/file:path/tojar/file2"
bash$ javac MyMainClass.java

【讨论】:

以上是关于java ubuntu 中的 java.lang.ClassNotFoundException [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

无法初始化编译器:找不到编译器镜像中的对象 java.lang.Object

Ubuntu Tomcat7 java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory

Ubuntu执行jar文件[重复]

无法加载 Xuggle 库:java.lang.UnsatisfiedLinkError

为啥 java.lang.Cloneable 不覆盖 java.lang.Object 中的 clone() 方法?

java.lang.ClassNotFoundException: javax.servlet.Filter