我正在阅读 db2jcc4.jar
的一些文档,这时以下内容引起了我的注意(添加了重点):
The following command will retrieve the JCC driver version if executed from the command line:
java com.ibm.db2.jcc.DB2Jcc -version
Or for drivers that are not yet installed:
java -cp ./db2jcc.jar com.ibm.db2.jcc.DB2Jcc -version
我拥有的只是db2jcc4.jar
文件 - 它没有附带安装程序或任何东西。我可以运行第二个命令,它工作正常,但第一个命令给了我这个堆栈跟踪:
Exception in thread "main" java.lang.NoClassDefFoundError: com.ibm.db2.jcc.DB2Jcc
Caused by: java.lang.ClassNotFoundException: com.ibm.db2.jcc.DB2Jcc
at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:665)
at java.lang.ClassLoader.loadClass(ClassLoader.java:644)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
at java.lang.ClassLoader.loadClass(ClassLoader.java:627)
Could not find the main class: com.ibm.db2.jcc.DB2Jcc. Program will exit.
这告诉我该 jar 尚未安装。在我使用 Java 的所有时间里,我从未听说过安装 jar。如何才能使第一个命令正常工作,而不是出现此问题并打印堆栈跟踪?如何安装 jar?
在我看来,第二个命令包含一个标志 -cp
,它修改类路径。我猜这意味着我需要做的就是将我的 jar 文件移动到特定目录中。我尝试将其放入 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.33.x86_64/jre/lib
但这并没有成功,所以第二个命令可以工作。我很困惑,并且非常感谢任何关于我需要将这个 jar 移动到哪里才能被视为已安装的建议。
最佳答案
不存在“安装”jar 之类的事情。要被 Java 应用程序使用,jar 必须可以在类路径中访问。看看这个链接:
http://docs.oracle.com/javase/tutorial/essential/environment/paths.html
关于java - 如何安装 Jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28077270/