2013-05-03 41 views
2

我得到一个异常:如何导入公地io.jar JSP/JAVA

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; 

在构建添加的罐子到类路径:

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 

我也尝试过添加我的.java文件所在的罐子@Scot Ship建议

----提到---

我没有使用任何IDE

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

第一次使用apache,tomcat,jsp ..请温和

+0

我本来期望'网站/ WEB-INF/lib'。只需尝试一次IDE,NetBeans就简单而且简单。 – 2013-05-03 23:18:10

+0

这是简单的方法。我可以导入其他软件包,比如derby.jar或servlet-api.jar,并且它们完美地工作。“只是这个让我头疼的事情。也不能保证在花费我们的配置eclipse后,我想要的方式,甚至可以工作。 – 2013-05-03 23:20:43

回答

0

看了这个http://commons.apache.org/proper/commons-fileupload/faq.html#class-not-found。可能你有fileupload jar,但是你的classpath也需要commons-io.jar。

+0

如果你看过我的问题的文字,你会看到我还添加了公共-IO的路径 – 2013-05-03 23:25:33

+1

我想你应该尝试把罐子在同一目录作为您的.java文件开始。通常javac将当前目录视为类路径的开始。如果这不起作用,您可能会损坏.jar文件或者.jar文件存在其他问题。 – 2013-05-03 23:31:32

+1

来自的更多信息:默认的类路径是当前目录。设置CLASSPATH变量或使用-classpath命令行选项将覆盖该默认值,因此如果要将当前目录包含在搜索路径中,则必须包含“。”。在新的设置中。 – 2013-05-03 23:34:15

1

弗拉德,Web容器会自动寻找JAR文件内

/WEB-INF/lib 

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

尝试在你的servlet或JSP的一个显示此:

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

,你会得到一个什么样的类和JAR实际上加载的更好的视野。

更新:审核您的问题后,它将显示你在编译的文件开始与面临的问题和你外面做的IDE。

注意到,当你使用的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上面提到的,并编译它,你正在做的有关文件的方式。