JAVA JAI:在Jai Jars和Jai Setups之间,我应该使用什么来获得更快更有效的结果?

时间:2012-08-17 05:05:02

标签: java jar installation jai

我在我的应用程序中使用了jai(Java Advance Imaging)。

当我使用jai设置时,我觉得我的图像处理速度更快,但需要将这些设置安装在用户计算机上。

当我使用Jars of jai时,它不需要任何安装,但图像处理有点慢。

那么我应该采用什么方法来获得更快更有效的结果?

有没有办法可以安静地安装jai设置,在灌输时不需要任何用户交互?

1 个答案:

答案 0 :(得分:2)

我认为您看到的性能差异是由JAI在有或没有硬件加速的情况下运行引起的。要获得硬件加速,您必须:

  • 或将JAI安装到JRE中(然后将正确的JAR / DLL / SO文件复制到JRE,然后可用于任何Java应用程序)
  • 或者在您的Java应用程序中提供JAR / DLL / SO文件。在这种情况下无需安装!

要实施第二个选项,您必须:

  • 包括 jai_codec-1.1.3.jar jai_core-1.1.3.jar mlibwrapper_jai.jar 到您的应用程序并将它们添加到类路径
  • libmlib_jai.so mlib_jai.dll mlib_jai_mmx.dll mlib_jai_util.dll 到应用程序的工作文件夹

如果你在Lynux上运行,你可能需要使用工作目录扩展LD_LIBRARY_PATH,告诉java在哪里找到SO文件:

#!/bin/bash

ROOT=`dirname $0`
cd $ROOT

# allow JINI to load libraries from working directory 
# (e.g. libmlib_jai.so - JAI hardware acceleration library) 
export LD_LIBRARY_PATH=$ROOT:$LD_LIBRARY_PATH

示例:

您的申请结构可能是:

YourApplication
    lib
        jai_codec-1.1.3.jar 
        jai_core-1.1.3.jar 
        mlibwrapper_jai.jar        
        ...
    libmlib_jai.so 
    mlib_jai.dll 
    mlib_jai_mmx.dll 
    mlib_jai_util.dll
    ...
    run.cmd
    run.sh
    ...

因此,JAR包含在CLASSPATH中,SO / DLL位于工作文件夹中(执行run.cmd/.sh)。