windows - 使用 JDK 7 构建 Cocoon 2.1.0 失败 : compile-build. xml:68

标签 windows apache-cocoon

我正在使用 java JDK 7 尝试在 Windows 2008 R2 上构建 cocoon 2.1.10,以便最终在 Tomcat 7 中部署。我已经下载了 cocoon 源文件,解压缩它们,设置我的 JAVA_HOME 变量,然后尝试运行提供的 build.bat 文件。我收到 11 个不同的编译错误。



    D:\cocoon-2.1.10-src\cocoon-2.1.10>build.bat
    Buildfile: build.xml

    prepare:
    ====================================================================
                     Apache Cocoon 2.1.10 [1999-2006]
    ====================================================================
     Building with Apache Ant version 1.6.5 compiled on June 2 2005
    --------------------------------------------------------------------
     Using build file D:\cocoon-2.1.10-src\cocoon-2.1.10\build.xml
    --------------------------------------------------------------------
     Compiler options:
       - debug ......... [on]
       - optimize ...... [on]
       - deprecation ... [off]
    ====================================================================

    compile-core:
    Compiling 594 source files to D:\cocoon-2.1.10-src\cocoon-2.1.10\build\cocoon\classes
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:39: error: package com.
    sun.image.codec.jpeg does not exist
    import com.sun.image.codec.jpeg.ImageFormatException;
                                   ^
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:40: error: package com.
    sun.image.codec.jpeg does not exist
    import com.sun.image.codec.jpeg.JPEGCodec;
                                   ^
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:41: error: package com.
    sun.image.codec.jpeg does not exist
    import com.sun.image.codec.jpeg.JPEGEncodeParam;
                                   ^
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:42: error: package com.
    sun.image.codec.jpeg does not exist
    import com.sun.image.codec.jpeg.JPEGImageEncoder;
                                   ^
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:326: error: cannot find
     symbol
                        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
                        ^
      symbol:   class JPEGImageEncoder
      location: class ImageReader
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:326: error: cannot find
     symbol
                        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
                                                   ^
      symbol:   variable JPEGCodec
      location: class ImageReader
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:327: error: cannot find
     symbol
                        JPEGEncodeParam p = encoder.getDefaultJPEGEncodeParam(currentImage);
                        ^
      symbol:   class JPEGEncodeParam
      location: class ImageReader
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:333: error: cannot find
     symbol
                        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bstream);
                        ^
      symbol:   class JPEGImageEncoder
      location: class ImageReader
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:333: error: cannot find
     symbol
                        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bstream);
                                                   ^
      symbol:   variable JPEGCodec
      location: class ImageReader
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:334: error: cannot find
     symbol
                        JPEGEncodeParam p = encoder.getDefaultJPEGEncodeParam(currentImage);
                        ^
      symbol:   class JPEGEncodeParam
      location: class ImageReader
    D:\cocoon-2.1.10-src\cocoon-2.1.10\src\java\org\apache\cocoon\reading\ImageReader.java:342: error: cannot find
     symbol
                } catch (ImageFormatException e) {
                         ^
      symbol:   class ImageFormatException
      location: class ImageReader
    11 errors

    BUILD FAILED
    D:\cocoon-2.1.10-src\cocoon-2.1.10\tools\targets\compile-build.xml:68: The following error occurred while exec
    uting this line:
    D:\cocoon-2.1.10-src\cocoon-2.1.10\tools\targets\compile-build.xml:51: Compile failed; see the compiler error
    output for details.


我还尝试在命令行中使用“build war”,结果相同。

这是我使用的 JDK 的问题还是我需要查看其他内容?这是我第一次尝试构建和部署 Cocoon,我可能遗漏了一些明显的东西。

问候,托尼

最佳答案

已弃用的专有 com.sun.image.jpeg.codec 包已从 JDK 7 中删除(参见官方 official JDK7 compatibility note )。因此你的编译问题。

由于在您的情况下修补 Cocoon 源代码可能不是一个选项,因此最短的路径可能是使用 JDK 6(或更早版本,the Cocoon 2.1 series require "Java 1.3 or later")进行编译。

(但如果是,因为您似乎需要特定的 Cocoon 和 JDK 版本,您可能想看看 How to replace com.sun.image.codec.jpeg.JPEGImageEncoder 上的 SO Q&A,调用标准 Java Image I/O API)


另一种选择可能是查看 com.sun.image.jpeg.codec 包的单独分发,以包含在您构建(和可能的运行时)类路径中。我不确定此选项的可用性(和易用性)。无论如何,我不建议深入研究它,除非所有其他路径都被证明是死胡同...

关于windows - 使用 JDK 7 构建 Cocoon 2.1.0 失败 : compile-build. xml:68,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12846098/

相关文章:

windows - 如何从 Windows 接收 MPEG-TS 多播

c++ - 编译 wsdlpull

python-3.x - 运行使用 pywinauto 的脚本时出错

java - WAS 7.0.0.0 上的类加载器问题 - DocumentBuilderFactoryImpl

dspace - Dspace 1.8.2 中的方面链

java - Apache Cocoon JAR 配置 - 我想使用 .class 文件!

linux - 映射 samba 共享时网络使用错误 1312

windows - 为什么 Windows 上的 Vim 使用\n 进行搜索?

xml - 声明一个 xsl 变量并为其赋值

xslt - Cocoon逃逸查询参数问题