1

我写了一个从excel读取文本的Java程序。所以我导入了一些像这样的jar:,poi-3.10-beta2-20130904.jarpoi-ooxml-3.10-beta2-20130904.jar我可以在eclipse中正确运行程序。但是当我用maven将该程序打包到目录(C:\workspace2\change\bin时,

然后我用这样的命令运行这个程序:

C:\workspace2\change\bin>java GenerateVar

它发生此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Cell
    at GenerateVar.execute(GenerateVar.java:59)
    at GenerateVar.main(GenerateVar.java:25)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Cell
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 2 more
4

3 回答 3

0

over, I change the way do what I want to do. I use the fat jar which is the eclipse plugin to package the program

于 2013-10-07T13:21:24.250 回答
0

您需要为程序中使用的所有其他 jars/类指定类路径。例如在 java 类路径中设置多个 jars

于 2013-10-06T13:02:34.933 回答
0

当您在控制台中从 Eclipse 运行它时,有一个可用于运行项目的命令,您可以将其从控制台复制/粘贴到命令行。

java GenerateVar您没有设置-cp选项的命令中。使用此选项,命令行将如下所示

java -cp poi-3.10-beta2-20130904.jar poi-ooxml-3.10-beta2-20130904.jar ... GenerateVar

假设库在当前目录中。

如何使用 maven 插件为您的项目添加依赖项并构建 jar,您可以在此处找到。

如果要手动修改,另请参阅此答案。manifest.mf

于 2013-10-06T12:31:11.837 回答