【问题标题】:Including .jar files in a classpath在类路径中包含 .jar 文件
【发布时间】:2012-02-15 12:20:34
【问题描述】:

我正在尝试在 Windows 环境中启动并运行 JDBC。在类路径中包含 .jar 文件是什么意思?我看到了如何修改 Windows 的 CLASSPATH 环境变量......但是哪些文件需要去哪里以及需要将 CLASSPATH 环境变量设置为什么?我已经尝试了几乎所有我能立即想到的组合,但我不知所措。

谢谢。

【问题讨论】:

  • 类路径包含单独的 jar 文件和目录。在 Java 6+ 中也可以使用通配符。设置 CLASSPATH 环境变量会导致意想不到的后果;在批处理文件中没关系,否则只需使用 -cp 选项。
  • 我是一个 Java 文盲,并且试图让我的脚离开地面。我查看了 Oracle 文档,他们没有提到 -cp 选项是什么,更不用说它是如何使用的了。我在哪里可以找到这样的信息?非常感谢!

标签: java jdbc jar classpath


【解决方案1】:

CLASSPATH 变量包含找到类文件的目录列表。 .jar 文件实际上是一个压缩目录,因此 .jar 文件本身的名称应该在 CLASSPATH 中,而不是它所在的目录的名称。

例如,如果您有两个目录,其中包含类文件树 C:\java\classes\C:\java\specialclasses\ 以及两个 jar 文件 C:\java\jars\jam.jarC:\java\jars\jelly.jar,那么您的类路径变量将设置为 C:\java\classes\;C:\java\specialclasses\;C:\java\jars\jam.jar;C:\java\jars\jelly.jar

作为一般规则,除非您有两个具有相同名称的类的包(希望您没有),否则您只想将通常用于 CLASSPATH 变量的内容添加到 CLASSPATH 变量中,而不是删除或替换已经存在的东西。默认情况下,它包含 java.* 类的目录,包含这些目录很重要。此外,根据您的环境,管理员可能已添加其他常用类。

【讨论】:

  • 感谢您的回复!我一定错过了一些愚蠢的东西......我将 CLASSPATH 环境变量设置为 -> C:\Users\Jon\JavaProjects\TestProject\src\;C:\Users\Jon\JavaProjects\jars\mysql-connecter-java- 5.1.18-bin.jar\ ,我仍然收到 ClassNotFoundException... 有什么想法吗?
  • 你不希望在 mysql-connecter-java-5.1.18-bin.jar 之后有一个 \ 在后面加上一个反斜杠使它假定它实际上是一个目录,但它实际上是一个文件。因此,当它查找具有该名称的目录时,它找不到。删除那个反斜杠,它应该可以正常工作。
【解决方案2】:

Look no further than Oracle's own documentation

例如,如果您在 /a/目录中有 3 个 jar,您会执行以下操作:

java -classpath /a/directory/jar1.jar;/a/directory/jar2.jar;/a/directory/jar3.jar

您可以以类似的方式设置 CLASSPATH 变量。

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 2023-03-11
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多