2. インストール

インストールは、 Cygwin の bash から行います。

以下の説明では、インストール先を /usr/local/java/ として作業を進めます。

$ cd /usr/local/
$ mkdir java
$ cd java
$ tar zxvf /path/to/fop-0.20.5-bin.tar.gz
fop-0.20.5/fop.sh
fop-0.20.5/examples/servlet/build.sh
fop-0.20.5/examples/embedding/build.sh
fop-0.20.5/xalan.sh
fop-0.20.5/
...
$ pwd
/usr/local/java
$ ls -l
total 0
drwxr-xr-x+   7 merita なし            0 Jan 16 11:07 fop-0.20.5
$ cd fop-0.20.5
$ ls -l
...
-rw-r--r--    1 merita なし          812 Jul 15  2003 fop.bat
-rwxr-xr-x    1 merita なし         2446 Jul 15  2003 fop.sh
drwxr-xr-x+   2 merita なし            0 Jan 16 11:07 lib
-rw-r--r--    1 merita なし          330 Jul 15  2003 xalan.bat
-rwxr-xr-x    1 merita なし         2452 Jul 15  2003 xalan.sh

fop.sh が FOP を起動するためのシェル・スクリプトですが、 ちょっとしたミスがあり Cygwin では動作しません。修正したものを作成しましたので、こちらを使用してください。

fop_sh.txt:

#! /bin/sh
#
# Shell script to run FOP, adapted from the Jakarta-Ant project.

FOP_HOME=/usr/local/java/fop-0.20.5
FOP_USERCONF="$FOP_HOME/conf/userconfig.xml"

if [ -f $HOME/.foprc ] ; then
  . $HOME/.foprc
fi

if [ -e $FOP_USERCONF ] ; then
  if $cygwin ; then
    FOP_USERCONF=`cygpath --windows "$FOP_USERCONF"`
  fi
  FOP_OPTS="$FOP_OPTS -c $FOP_USERCONF"
fi

# OS specific support.  $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
case "`uname`" in
  CYGWIN*) cygwin=true ;;
  Darwin*) darwin=true ;;
esac

if [ -z "$FOP_HOME" ] ; then
  # try to find FOP
  if [ -d /opt/fop ] ; then
    FOP_HOME=/opt/fop
  fi

  if [ -d ${HOME}/opt/fop ] ; then
    FOP_HOME=${HOME}/opt/fop
  fi

  ## resolve links - $0 may be a link to fop's home
  PRG=$0
  progname=`basename $0`

  while [ -h "$PRG" ] ; do
    ls=`ls -ld "$PRG"`
    link=`expr "$ls" : '.*-> \(.*\)$'`
    if expr "$link" : '.*/.*' > /dev/null; then
	PRG="$link"
    else
	PRG="`dirname $PRG`/$link"
    fi
  done

  FOP_HOME=`dirname "$PRG"`

fi

# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
  [ -n "$FOP_HOME" ] &&
    FOP_HOME=`cygpath --unix "$FOP_HOME"`
  [ -n "$JAVA_HOME" ] &&
    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
  [ -n "$CLASSPATH" ] &&
    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi

if [ -z "$JAVACMD" ] ; then
  if [ -n "$JAVA_HOME"  ] ; then
    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
      # IBM's JDK on AIX uses strange locations for the executables
      JAVACMD=$JAVA_HOME/jre/sh/java
    else
      JAVACMD=$JAVA_HOME/bin/java
    fi
  else
    JAVACMD=java
  fi
fi


if [ -n "$CLASSPATH" ] ; then
  LOCALCLASSPATH=$CLASSPATH
fi

# add fop.jar, which resides in $FOP_HOME/build
LOCALCLASSPATH=${FOP_HOME}/build/fop.jar:$LOCALCLASSPATH

# add in the dependency .jar files, which reside in $FOP_HOME/lib
DIRLIBS=${FOP_HOME}/lib/*.jar
for i in ${DIRLIBS}
do
    # if the directory is empty, then it will return the input string
    # this is stupid, so case for it
    if [ "$i" != "${DIRLIBS}" ] ; then
      if [ -z "$LOCALCLASSPATH" ] ; then
        LOCALCLASSPATH=$i
      else
        LOCALCLASSPATH="$i":$LOCALCLASSPATH
      fi
    fi
done

# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
  FOP_HOME=`cygpath --path --windows "$FOP_HOME"`
  JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
  LOCALCLASSPATH=`cygpath --path --windows "$LOCALCLASSPATH"`
fi

$JAVACMD -Xmx256M $JAVAOPTS -classpath "$LOCALCLASSPATH" org.apache.fop.apps.Fop $FOP_OPTS "$@"

このファイルを PATH の通った場所へ fop として保存し、実行パーミッションを追加してください。たとえば /usr/local/bin/fop などとして保存し、

$ chmod a+x /usr/local/bin/fop

とします。

関連記事

  • more DocBook: 7 ...

PDF
  • more PDF: 6 ...

新着記事