【发布时间】:2015-02-12 12:57:57
【问题描述】:
我有一个使用外部 .jar 库的 Java Main 类。
所以我正在尝试编译它,将这个 .jar 文件放入类路径中:
C:\Projects\edi-sta\src>javac -cp ojdbc6.jar:. Main.java
所以我认为我必须编译 Main.Java 类“导入”由 ojdbc6.jar 表示的类路径。
它没有给我任何错误消息并编译它,但问题是当我尝试执行编译后的 Main 类时,我收到以下错误消息:
C:\Projects\edi-sta\src>java Main
Hello World !!!
0
java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at Main.main(Main.java:21)
C:\Projects\edi-sta\src>
它看不到在编译时用作类路径的 ojdbc6.jar 中定义的 oracle.jdbc.OracleDriver 类。
为什么我有这个问题?我错过了什么?我该如何解决?
编辑 1:
我将我的 Main.java 类移动到一个名为 mainPkg 的包中。
所以我有以下情况我也放了ojdbc6.jar文件:
C:\Projects\edi-sta\src\mainPkg>dir
Il volume nell'unità C è OS
Numero di serie del volume: 9414-E1F8
Directory di C:\Projects\edi-sta\src\mainPkg
12/02/2015 14:18 <DIR> .
12/02/2015 14:18 <DIR> ..
12/02/2015 14:13 1.337 Main.class
12/02/2015 14:05 1.285 Main.java
11/02/2015 11:01 3.692.096 ojdbc6.jar
3 File 3.694.718 byte
2 Directory 4.861.566.976 byte disponibili
Main.class 文件是通过执行以下命令创建的:
javac -cp ojdbc6.jar;. Main.java
我在这里也使用了 ; 分隔符,因为我在 Windows 下。
现在我已经创建了 Main.class 文件,我尝试执行此操作:
java -cp ojdbc6.jar;. Main
但我仍然收到“无法找到或加载主类”错误消息:
C:\Projects\edi-sta\src\mainPkg>javac -cp ojdbc6.jar;. Main.java
C:\Projects\edi-sta\src\mainPkg>java -cp ojdbc6.jar;. Main
Errore: impossibile trovare o caricare la classe principale Main
C:\Projects\edi-sta\src\mainPkg>
我错过了什么?怎么了?
Tnx
【问题讨论】:
标签: java jakarta-ee classpath javac