Apache POI库中的JNI错误

时间:2018-07-02 06:30:36

标签: java cmd javac

因此,我目前正在尝试从Windows中的命令行执行Java程序。

import java.io.*;
import java.util.*;
import org.apache.poi.xssf.usermodel.*; 
import org.apache.poi.ss.usermodel.*;

在命令行中,我已经考虑了多个库,而Apache(3.17)出现了错误。我已经检查了构建路径,并且所有外部库都在命令行中进行了编译

cd C:\Users\Joshuab\Desktop\ATS\workExcelApplication\src
set path=%path%;C:\Program Files\Java\jdk1.8.0_172\bin
javac -cp C:\Users\Joshuab\Desktop\ATS\ATS\API\poi-3.17\/* Check.java
java Check

在命令行中的java Check上出现错误

Error: A JNI error has occurred, please check your installation and
try again Exception in thread "main" java.lang.NoClassDefFoundError:
org/apache/poi/ss/use rmodel/Row
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
        at java.lang.Class.privateGetMethodRecursive(Unknown Source)
        at java.lang.Class.getMethod0(Unknown Source)
        at java.lang.Class.getMethod(Unknown Source)
        at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.poi.ss.usermodel.Row
        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)
        ... 7 more

我一直在寻找解决方案,以找到其他有类似问题的解决方案,但没有解决方案。所以我的问题是:

  1. 问题出在哪里?
  2. 我该如何解决
  3. 如果有解决方案或文档,您可以发送链接或任何相关内容。

1 个答案:

答案 0 :(得分:0)

解决方案

cd C:\Users\Joshuab\Desktop\ATS\workExcelApplication\src
set path=C:\Program Files\Java\jdk1.8.0_172\bin
java -cp ".\*;" Check

花了一段时间才弄清楚并帮助其他任何人,如果他们有与此类似的问题。我在javac文档中找到了解决方案,您可以在这里找到:https://docs.oracle.com/javase/6/docs/technotes/tools/windows/javac.html

因此,在使用解释器时,需要使用“。\ *;”指定API和其他外部库。是包含所有外部库的当前目录。