JAI setup非常繁琐,涉及多个jar和环境变量。如果我可以将其添加为常规的Maven依赖项,则将极大地帮助项目的可移植性。

我正在使用的POM代码段是

<dependency>
  <groupId>com.sun.media</groupId>
  <artifactId>jai_imageio</artifactId>
  <version>1.1</version>
</dependency>

错误是
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.

Missing:
----------
1) com.sun.media:jai_imageio:jar:1.1
2) javax.media:jai_core:jar:1.1.3

我当然可以下载并安装这些jar。问题是双重的:
  • jai_imageio需要两个 jar ;
  • jai_imageio需要安装 native 库并设置两个环境变量。

  • 我还没有找到一种使Maven起作用的方法。

    有关我使用JAI的原因,请参见Reading JCS_YCCK images using ImageIO

    最佳答案

    为了避免下载和安装jar,可以在spring repo上添加依赖项。因此,请稍微更改常规依赖项:

        <dependency>
            <groupId>javax.media.jai</groupId>
            <artifactId>com.springsource.javax.media.jai.core</artifactId>
            <version>1.1.3</version>
        </dependency>
    

    并添加一个存储库声明:
        <repository>
            <id>com.springsource.repository.bundles.external</id>
            <name>SpringSource Enterprise Bundle Repository - External Bundle Releases</name>
            <url>http://repository.springsource.com/maven/bundles/external</url>
        </repository>
    

    现在它应该可以工作了(它使所有sun类都可以使用javax.media.jai。*)。看这里:

    http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.javax.media.jai.core&version=1.1.3

    您也可以根据需要添加编解码器依赖项...

    http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.javax.media.jai.codec&version=1.1.3

    10-06 03:42