Java 导入jar不起作用
我正在尝试做一些非常简单的事情。现在我想做的就是构建一个包含适当类的文件 我有一个名为Promomon.java的文件Java 导入jar不起作用,java,build-process,classpath,Java,Build Process,Classpath,我正在尝试做一些非常简单的事情。现在我想做的就是构建一个包含适当类的文件 我有一个名为Promomon.java的文件 class Promomon { public static void main(String[] args) { System.out.println("Hello World!"); } } 简单,那里一切都很好。我可以编译和运行,我看到了Hello World 现在我添加了我希望使用的类 import org.apache.poi.xssf.user
class Promomon {
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
简单,那里一切都很好。我可以编译和运行,我看到了Hello World
现在我添加了我希望使用的类
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
这是直接从Apache POI文档中获取的
- 我正在使用Ubuntu 10.04。我使用synaptic安装了java(apt get install openjdk-6-jdk)
- Java安装在/usr/lib/jvm/Java-6-openjdk/jre/
- JAVA_HOME设置为“/usr/lib/jvm/JAVA-6-openjdk/jre/”
$echo$JAVA_HOME
/usr/lib/jvm/java-6-openjdk/jre/ - 我自己用Ant构建了POI罐子,没问题
- 我将JAR放在java的lib目录中。(/usr/lib/jvm/java-6-openjdk/jre/lib/)
$ls-l/usr/lib/jvm/java-6-openjdk/jre/lib/poi*
-rw-r--r--1根根目录1539296 2010-09-08 12:40/usr/lib/jvm/java-6-openjdk/jre/lib/poi-3.6-20100908.jar
-rw-r--r--1根根目录69142 2010-09-08 12:40/usr/lib/jvm/java-6-openjdk/jre/lib/poi-contrib-3.6-20100908.jar
-rw-r--r--1根根根181907 2010-09-08 12:40/usr/lib/jvm/java-6-openjdk/jre/lib/poi-examples-3.6-20100908.jar
-rw-r--r--1根根412788 2010-09-08 12:40/usr/lib/jvm/java-6-openjdk/jre/lib/poi-ooxml-3.6-20100908.jar
-rw-r--r--1根根目录3774336 2010-09-08 12:40/usr/lib/jvm/java-6-openjdk/jre/lib/poi-ooxml-schemas-3.6-20100908.jar
-rw-r--r--1根根目录795893 2010-09-08 12:40/usr/lib/jvm/java-6-openjdk/jre/lib/poi-scratchpad-3.6-20100908.jar - 我的类路径设置为此目录
$echo$CLASSPATH
/usr/lib/jvm/java-6-openjdk/jre/lib/
谢谢你的帮助 将jar文件直接放在lib目录中没有任何帮助。您可以将它们放在jre/lib/ext中,或者可以指定另一个ext目录(
javac-extdirs=…
和java-Djava.ext.dirs=…
),或者可以显式指定jar文件
编辑:我有一种隐秘的怀疑,Java6做了一些改变,使之更容易实现,但我不记得是什么了。上面的内容应该会帮你分类,直到有人指出我忘记了什么:)当你在类路径中指定JAR时,你不能只指定它们所在的目录,你需要显式地列出JAR(Jon Skeet在jdk6中提到的更改可能是一个更改,但我也不记得了) 我不会把那些JAR放在jdk lib目录中。在Promomon.java文件的src目录旁边创建一个lib目录,将jar添加到其中,并在编译和运行时在类路径中单独列出jar。当我说classpath时,我不是指环境变量。以下是一些备选方案:
- 创建两个包含编译和运行命令的可执行文件,并将jar文件添加到-cp开关中的内容列表中李>
- 获取ant并生成build.xml文件李>
- 使用类似eclipse的IDE并指定JAR(在eclipse菜单中选择File->BuildPath->Configure Build Path并选择“Libraries”选项卡)
-cp=/usr/myapp/classes:/usr/myapp/lib/foo.jar:/usr/myapp/lib/bar.jar
你可以说
-cp=/usr/myapp/classes:/usr/myapp/lib/*.jar
您使用的是哪种IDE?这不是为你准备的吗?发生了什么,你的构建失败了?你们有错误吗?我只是好奇,为什么不使用-cp参数运行它?“java-cppoi.jar:yourJar.jaryourclass”我现在没有使用IDE。我真的只是想做点什么。。。好吧,至少看看POI是否能满足我的需要。我曾尝试使用-cp命令,但正如Nathan在下面暗示的那样,我必须包含完整的jar路径。我只是指定了包含JAR的目录。谢谢!这把它修好了。但是,我无法使用通配符包含JAR集。我必须单独包含每个路径。尽管如此,它现在可以编译了,再次感谢。似乎我必须包含要编译的完整路径,但我可以在运行时使用通配符。