【问题标题】:How to import commons-io.jar jsp/java如何导入 commons-io.jar jsp/java
【发布时间】:2013-04-28 10:26:33
【问题描述】:

我遇到了一个异常:

Cannot find symbol: FileUploadException; 

我有一段代码使用

FileUploadException

需要导入的库是:

org.apache.commons.fileupload.FileUploadException

我的项目路径是:

D:\Projects\website

在项目文件夹中,我有每个文件夹:

Tomcat, Derby, Website

我已经复制了:

commons-fileupload.jar and commons-io.jar

两者兼而有之:

Tomcat/lib and Website/Web-INF/lib

-------------我试过这个--------------

只是自己导入库

import org.apache.commons.fileupload.FileUploadException;

在构建时将 jars 添加到类路径:

javac -cp .;D:Projects\website\Tomcat\lib\commons-fileupload.jar;D:\Projects\website\Tomcat\lib\commons-io.jar com/otrocol/app/*.java

将它们添加到环境变量 CLASSPATH

D:Projects\website\Tomcat\lib\commons-fileupload.jar;D:\Projects\website\Tomcat\lib\commons-io.jar

我还尝试按照@Scot Ship 的建议添加 .java 文件所在的罐子

----提及---

我没有使用任何 IDE

代码包含更多无法识别的符号,但我尝试一次解决一个

第一次使用apache、tomcat、jsp..请温柔

【问题讨论】:

  • 我会期待Website/WEB-INF/lib。只需尝试一次 IDE,NetBeans 简单且极简。
  • 这是最简单的方法。我可以导入其他包,如 derby.jar 或 servlet-api.jar,它们工作得很好。只是这个让我头疼。也不能保证在我们按照我想要的方式配置 eclipse 之后,它甚至可以工作。

标签: java jsp web-applications apache-commons-fileupload


【解决方案1】:

Vlad,web 容器会自动在里面寻找 JARs

/WEB-INF/lib

即使没有任何开发人员干预。请注意,它都是大写的 WEB-INF。只要您的 JAR 存在,它就会在您的 Web 应用程序的类路径中。

尝试在您的 servlet 或 JSP 中显示它:

System.getProperty("java.class.path")

您将更好地了解实际加载了哪些类和 JAR。

更新:查看您的问题后,您似乎在开始编译文件时遇到了问题,并且您是在在 IDE 之外进行的。 p>

请注意,当您像这样在 javac 中使用 -cp 时:

javac -cp .;D:Projects\website\Tomcat\lib\commons-fileupload.jar;D:\Projects\website\Tomcat\lib\commons-io.jar com/otrocol/app/*.java

您在 CLASSPATH 环境变量中设置的任何值都会被忽略。

请绝对确保 FileUploadException 类确实在您尝试导入的 JAR 之一中:您可以使用取消归档工具直接查看 JAR。

另外,将 com/otrocol/app/*.java 更改为 com\otrocol\app*.java - 您应该使用系统分隔符(不是说这可能会影响您的问题)。

在与您正在编译的文件相同的位置创建一个简单的 HelloWorld,添加上面提到的 SystemOut,并按照您为相关文件执行的相同方式编译它。

【讨论】:

    【解决方案2】:

    阅读此http://commons.apache.org/proper/commons-fileupload/faq.html#class-not-found。可能你有文件上传 jar,但你的类路径中也需要 commons-io.jar。

    【讨论】:

    • 如果您阅读我的问题的文本,您会看到我还在路径中添加了 commons-io
    • 我想您应该尝试将 jar 放在与 .java 文件相同的目录中以启动。 javac 通常假定当前目录是类路径的开始。如果这不起作用,则您的 .jar 文件可能已损坏或 .jar 文件存在其他问题。
    • 来自 docs.oracle.com/javase/6/docs/technotes/tools/windows/…> 的更多信息:默认的类路径是当前目录。设置 CLASSPATH 变量或使用 -classpath 命令行选项会覆盖该默认值,因此如果要将当前目录包含在搜索路径中,则必须包含“。”在新设置中。
    • 还在上述问题的文本中,您会看到我的类路径覆盖包含 .; : javac -cp .;D:Projects\website\Tomcat\lib\commons-fileupload.jar;D:\Projects\website\Tomcat\lib\commons-io.jar com/otrocol/app/*.java
    • 也许我是个彻头彻尾的白痴并且使用了错误的罐子。请您提供正确的链接吗?
    猜你喜欢
    • 1970-01-01
    • 2012-02-15
    • 2016-02-28
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 2011-07-06
    • 2012-05-31
    • 1970-01-01
    相关资源
    最近更新 更多