【问题标题】:Maven and POI: package error and to compile the codeMaven和POI:打包错误并编译代码
【发布时间】:2017-04-15 02:56:51
【问题描述】:

我有以下代码:

    import java.io.*;
import org.apache.poi.hssf.usermodel.*;



public class CreateWorkBook 
{
   public static void main(String[] args)throws Exception 
   {
      //Create Blank workbook
      HSSFWorkbook workbook = new HSSFWorkbook(); 
      //Create file system using specific name
      FileOutputStream out = new FileOutputStream(new File("createworkbook.xlsx"));
      //write operation workbook using file out object 
      workbook.write(out);
      out.close();
      System.out.println("createworkbook.xlsx written successfully");
   }
}

但 Eclipse 环境抱怨行:

HSSFWorkbook workbook = new HSSFWorkbook();

它说:

  • HSSFWorkbook 无法解析为类型

我已经正确加载了包:import org.apache.poi.hssf.usermodel.*;

更多信息,pom.xml 文件:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>net.x.java</groupId>
  <artifactId>ExcelPass</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>ExcelPass</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
    <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.14</version>
</dependency>
  </dependencies>
  <properties>
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
</properties>
</project>

为什么要这样?我的配置有什么问题?

感谢您的帮助。

【问题讨论】:

  • 尝试从命令提示符运行命令mvn clean install 并检查是否遇到相同的错误。如果不是,那么您的日食有问题。在 Eclipse 上,尝试通过 Right Click on the project -&gt; Maven -&gt; Update 更新您的项目
  • @RITZXAVI:mvn clean install 没问题:构建成功 [信息] ---------------------------- -------------------------------------------------------- [INFO] 总时间: 11.085 秒 [INFO] 完成于:2016-11-30T18:35:14+00:00 [INFO] 最终内存:19M/124M 我正在​​尝试找到您的第二个建议,但更新它并没有改变什么。
  • 所以这意味着你的日食有问题。您是否尝试从 eclipse 中删除项目并重新导入?
  • 当然可以,稍后我会通知您。
  • @RITZXAVI:嗨,现在我已经解决了这个问题,我的代码上没有红色下划线,但我有一个警告:资源泄漏:'workbook' is never closed 关于@线987654327@ 之后,如果我尝试编译为 Java 应用程序,该文件将无法运行。

标签: java eclipse maven package apache-poi


【解决方案1】:

Eclipse 中删除项目,然后再次重新导入。 这应该可以解决您的问题。

【讨论】:

    【解决方案2】:

    总结一下,我们需要检查以下段落:

    1) 您是否已将 Apache POI 依赖项添加到 Maven POM?例如

    <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.7</version>
    </dependency>
    

    2) 您是否从命令行运行 Maven 构建以确保它成功完成?例如

    $ mvn clean package
    

    3) 当您运行 Maven 构建时,它会下载所有必需的依赖项,并将它们安装到本地 Maven 存储库中,如 $MAVEN_HOME/config/settings.xml 中配置的那样。您应该在本地 Maven 存储库中找到 POI 库 (JAR) 文件,例如

    poi-3.7.jar
    

    如果您使用 7-Zip 或运行 JDK jar 实用程序打开此存档,您将看到它包含 Eclipse 找不到的类。

    4) 您是否在 Eclipse 中使用 File -> Import -> Maven -> Existing Maven Projects 将项目导入为 Maven 项目?

    5) 当您展开 Eclipse 项目“Java Resources”->“Libraries”时,您是否看到一个名为“Maven Dependencies”的库?当您展开它时,您会看到列出的 POI JAR 文件吗?

    【讨论】:

      猜你喜欢
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 2018-07-03
      • 1970-01-01
      • 2017-08-30
      • 2019-01-21
      • 1970-01-01
      • 2012-10-28
      相关资源
      最近更新 更多