尝试在命令提示符下 运行 a POI-dependent class
Trying to run a POI-dependent class on Command Prompt
正如标题所说,我正在尝试在使用 Apache POI 库的命令提示符中 运行 class 但是当我 运行 这个命令时:
java -cp C:\Users\rperera\IdeaProjects\LinkingNames\libs; HyperlinkWriter
我收到这个错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/CreationHelper
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.CreationHelper
at java.net.URLClassLoader.run(Unknown Source)
at java.net.URLClassLoader.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)
... 6 more
libs 文件夹包含下载时压缩的整个 POI 文件夹,所以我不确定为什么会抛出此错误。我还使用 IntelliJ 对此进行了测试,它 运行 很好。我知道命令提示符和 IntelliJ 处理库的方式不同,但我不确定为什么会这样。
如有任何帮助,我将不胜感激!谢谢!
您需要使用原始 .java 文件和指定的 POI jar 实际编译 jar。
javac -cp \path_to_jars \path_to_java_files
然后
java MyProject
我从之前的 answer of Whosebug 中找到了答案。我必须在末尾添加一个“*”和一个“.”。在分号之后。因此,对于我的示例,在编译方面,我必须这样做:
javac -cp C:\Users\rperera\IdeaProjects\LinkingNames\libs\*;. C:\Users\rperera\IdeaProjects\LinkingNames\src\HyperlinkWriter.java
然后 运行 它(归功于@andrewdleach),我刚刚做了:
java HyperlinkWriter
正如标题所说,我正在尝试在使用 Apache POI 库的命令提示符中 运行 class 但是当我 运行 这个命令时:
java -cp C:\Users\rperera\IdeaProjects\LinkingNames\libs; HyperlinkWriter
我收到这个错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/CreationHelper
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.CreationHelper
at java.net.URLClassLoader.run(Unknown Source)
at java.net.URLClassLoader.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)
... 6 more
libs 文件夹包含下载时压缩的整个 POI 文件夹,所以我不确定为什么会抛出此错误。我还使用 IntelliJ 对此进行了测试,它 运行 很好。我知道命令提示符和 IntelliJ 处理库的方式不同,但我不确定为什么会这样。
如有任何帮助,我将不胜感激!谢谢!
您需要使用原始 .java 文件和指定的 POI jar 实际编译 jar。
javac -cp \path_to_jars \path_to_java_files
然后
java MyProject
我从之前的 answer of Whosebug 中找到了答案。我必须在末尾添加一个“*”和一个“.”。在分号之后。因此,对于我的示例,在编译方面,我必须这样做:
javac -cp C:\Users\rperera\IdeaProjects\LinkingNames\libs\*;. C:\Users\rperera\IdeaProjects\LinkingNames\src\HyperlinkWriter.java
然后 运行 它(归功于@andrewdleach),我刚刚做了:
java HyperlinkWriter