スクリプトから javaプログラムを実行する方法

スクリプトから javaプログラムを実行する方法

概要

 スクリプトからjavaプログラムを実行する方法を例をあげてご紹介いたします。

完成形のスクリプトは以下のようなイメージとなります。

以下手順について詳述します。

設定手順

1.Javaプログラム作成

Javaプログラムファイルを作成してください。

SkyOnDemandのJavaで実行するため Java6以上 にて実装してください。

 

SAMPLE

PDFファイルのページサイズとページ数を返すプログラムです。
import java.io.FileInputStream; import java.util.List; import org.apache.pdfbox.pdfparser.PDFParser; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.common.PDRectangle; public class PdfInfoGetter { /** * PDFのサイズ(大きさ)を返します。 * ※Apache PDFBoxライブラリを使用しています。 * * @param args * 0:PDFのファイルパス * @throws Exception */ public static void main(String[] args) throws Exception { if (args.length != 1) { throw new Exception("引数が正しくありません。"); } String width = "0";//幅 String height = "0";//高さ int pageCount = 0;//ページ数 int pageRotation = 0;// 縦横 FileInputStream fs = null; String pdfFilePath = args[0]; try { fs = new FileInputStream(pdfFilePath); PDFParser pdfParser = new PDFParser(fs); pdfParser.parse(); PDDocument pdf = pdfParser.getPDDocument(); List<PDPage> allPages = pdf.getDocumentCatalog().getAllPages(); // 1ページ目のみ出力します。 pageCount = allPages.size(); if (allPages.size() > 0) { PDPage page = allPages.get(0); // 縦横混合のPDFの場合getRotationがNullとなる。 try { pageRotation = page.getRotation().intValue(); } catch (Exception e) { // 取得できないため縦横混合の場合は-1とする。 pageRotation = -1; } PDRectangle pdRectangle = page.getMediaBox(); width = String.valueOf(pdRectangle.getWidth()); height = String.valueOf(pdRectangle.getHeight()); } } finally { if (fs != null) { fs.close(); } } // //PDFサイズをScriptで取得するため System.out.print("WIDTH=" + width + ":HEIGHT=" + height + ":PAGE_COUNT=" + pageCount + ":PAGE_ROTATION=" + pageRotation); } }

 

 

2.ファイルをdataフォルダに配置

配置するファイル

  1. Javaプログラム(classファイル)

  2. 使用ライブラリ

  3. 実行するためのshファイル

shファイルの内容

  • 使用ライブラリのクラスパス指定をします。

  • SkyOnDemandのJavaプログラムと実行するクラスを指定します。($1は引数)

    JavaのファイルパスやJavaのバージョンが今後変わる可能性がございます。
    SkOnDemandバージョンアップの都度動作検証を行ってください。

     



SkyOnDemand WebStudioのエクスプローラにて、shファイルの編集を行わないでください。

ローカルのテキストエディタで編集してエンコードを「UTF-8」で保存したファイルをアップロードしてください。

 

 

3.スクリプトから実行

外部アプリケーションアイコンの設定[必須設定]

プロパティ名

備考

起動コマンド

sh

 

起動引数

shファイル引数

 

 

外部アプリケーションアイコンの設定 [実行設定]

プロパティ名

備考

作業ディレクトリ

/usr/local/dataspider/server/data/pdf/

 

外部アプリケーションが終了するまで待つ

true

 

戻り値が0ではない場合にはエラーとする

true

 

標準出力・標準エラー出力を取得する

true

 

 

 

外部アプリケーションのコンポーネント変数から結果を取得します。

コンポーネント変数名

説明

exitValue

コマンドのステータス

stdout

標準出力値

stderr

標準エラー出力値

文字列操作のロジックアイコンにて必要な値を抽出します。

取得結果例

以下のように値が取得されます。

注意事項

上記の記載内容は、あくまで一例となります。

SkyOnDemandの各種アダプタ機能だけでは実現できない要件などがあった際は、対応案の1つとしてご検討いただければ幸いです。