将包添加到类路径时,包不存在错误

时间:2015-10-27 17:53:42

标签: java

注意,链接的解决方案(例如DZone's blog post)不起作用。

我收到此错误,但导入了包(commons ... .jar)

org.apache.commons.lang3.tuple //does not exist import
org.apache.commons.lang3.tuple.MutableTriple

源代码

import org.apache.commons.lang3.tuple.MutableTriple;
import org.apache.commons.lang3.tuple.Pair;
import org.apache.commons.lang3.tuple.Triple;

构建代码:

  

出口   JAVA_HOME = /图书馆/的Java / JavaVirtualMachines / jdk1.8.0_25.jdk /内容/首页   /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/javac   -target 1.8 -source 1.8 -classpath \“../lib/commons-lang3-3.4.jar;../lib/httpclient-4.5.jar;../lib/httpcore-4.4.1.jar;../ LIB / org.json-20120521.jar; ../ LIB / PDFBOX-APP-2.0.0-20150606.170503-1383.jar; ../ SRC /:../ LIB /公地lang3-3.4-javadoc.jar; ../lib/pdfbox-app-2.0.0-20150606.170503-1383-sources.jar“\ -d output \ ../ src / com / tymaf / pdf / * .java

如何解决这个问题?

2 个答案:

答案 0 :(得分:5)

仔细检查您的类路径。看起来您混合了分隔符;:

也可以不包括jar编译类(库本身)。您已将java-docssources包含在类路径中无效。

../src/:
../lib/commons-lang3-3.4-javadoc.jar;
../lib/pdfbox-app-2.0.0-20150606.170503-1383-sources.jar

答案 1 :(得分:2)

这是我的建议

如何编译和使用.jar扩展名

.jar扩展名可以根据您的环境和IDE以不同方式导入。

这里它是如何从控制台作为本机模式工作的。

  1. 从中下载.jar.ziphttp://www.java2s.com/Code/Jar/c/Downloadcommonslang333jar.htm
  2. 在工作(项目)目录中创建一个名为libs
  3. 的文件夹
  4. 解压缩下载的文件并将commons-lang3-3.3.jar复制到您的工作目录libs
  5. 我还创建了一个用于测试它的类TheNewWork.java并添加了3个导入。
  6. 现在从您的工作目录c:\projects进行编译:

    javac -classpath "/Projects/libs/commons-lang3-3.3.jar;" TheNewWork.java

  7. 运行它:

    java -classpath "/Projects/libs/commons-lang3-3.3.jar;" TheNewWork

  8. 如果您有多个.jar,只需为Windows添加;,为Linux添加:。顺便说一句,我使用Windows 10 cmder控制台和java jdk1.8.0_66。在其他操作系统控制台中,您可能需要放置.:Projects...etc而不是/Projects...etc。但这个想法是一样的。

    更新
    在Windows中,可以设置类路径,如

    set CLASSPATH=%CLASSPATH%;C:\Projects\libs\commons-lang3-3.3.jar
    

    Linux中的OR

    export CLASSPATH=".:/Projects/libs/commons-lang3-3.3.jar"
    

    然后你可以运行javac TheNewWork.java,但这样或其他方式是个人品味。在其他操作系统中也可以做一些类似的事情。

    最后一件事,如果你懒惰并且既不想编写完整的命令行也不想创建类路径,你可以用完整的命令行创建一个批处理文件并以这种方式运行它;)

    一些参考文献:

    我希望这能解决你的问题

    解决方案之前 enter image description here

    解决方案后 enter image description here

    注意
    另外感谢@MarkPeters在我之前的回答中通知我:直接向JRE库添加应用程序依赖项不是一个好方法,因为它使JRE适合只运行一个Java应用程序,而不是通用运行时。此外,它会使OP想要做的任何部署复杂化。 lib / ext用于扩展核心Java API,如下所述:docs.oracle.com/javase/tutorial/ext/basics/install.html。不适用于普通的应用程序依赖项。