JLicenser
Javaプログラム保護ツール

com.ogane.jl
クラス Launcher

java.lang.Object
  拡張com.ogane.jl.Launcher

public final class Launcher
extends java.lang.Object

暗号化されたクラスをロードして実行するクラス。 JLicenserの使用者側で使用する。 コマンドとして実行すると、指定した暗号化されたアプリケーションのメインクラスを 起動する。

作成者:
大金康夫

フィールドの概要
static java.lang.String EXPIRED
          満了日
static java.lang.String HOSTNAME
          ホスト名
static java.lang.String INETADDR
          IPアドレス
static java.lang.String ISSUED
          発行日
static java.lang.String LICENSEE
          使用者名
static java.lang.String LICKEY
          ライセンスキー
static java.lang.String MACADDR
          物理アドレス
static java.lang.String PRODUCT
          製品名
static java.lang.String PUBKEY
          公開鍵
static java.lang.String SIGNATURE
          署名
static java.lang.String SYMETRIC_CIPHER_FACTORY
          対称鍵暗号
static java.lang.String SYMETRIC_CIPHER_KEY_LENGTH
          対称鍵暗号の鍵長(ビット)
static java.lang.String USERKEY
          利用者鍵
static java.lang.String VENDOR
          発行元
static java.lang.String VERSION
          製品バージョン
 
メソッドの概要
static void addClassPath(java.net.URL[] paths)
          既定のクラスパスに指定したクラスパスを追加する。
 java.lang.Object construct(java.lang.String classname)
          指定したクラスのコンストラクタを起動する。
 java.lang.Object construct(java.lang.String classname, java.lang.Object[] args)
          指定したクラスのコンストラクタを起動する。
 java.lang.Object construct(java.lang.String classname, java.lang.Object[] args, java.lang.Class[] classes)
          指定したクラスのコンストラクタを起動する。
 java.lang.Object execute(java.lang.Object obj, java.lang.String methodname)
          指定したクラスのインスタンスメソッドを起動する。
 java.lang.Object execute(java.lang.Object obj, java.lang.String methodname, java.lang.Object[] args)
          指定したクラスのインスタンスメソッドを起動する。
 java.lang.Object execute(java.lang.Object obj, java.lang.String methodname, java.lang.Object[] args, java.lang.Class[] classes)
          指定したクラスのインスタンスメソッドを起動する。
 java.lang.Object execute(java.lang.String classname, java.lang.String methodname)
          指定したクラスのスタティックメソッドを起動する。
 java.lang.Object execute(java.lang.String classname, java.lang.String methodname, java.lang.Object[] args)
          指定したクラスのスタティックメソッドを起動する。
 java.lang.Object execute(java.lang.String classname, java.lang.String methodname, java.lang.Object[] args, java.lang.Class[] classes)
          指定したクラスのスタティックメソッドを起動する。
 java.lang.ClassLoader getClassLoader()
          クラス起動のためのクラスローダを取得する。
static java.net.URL[] getClassPath()
          クラスパスを取得する。
static java.net.URL[] getDefaultClassPath()
          既定のクラスパスを取得する。
static Launcher getInstance()
          Launcherクラスのインスタンスを取得する。
static Launcher getInstance(java.io.File licfile)
          Launcherクラスのインスタンスを取得する。
static Launcher getInstance(java.net.URL licfile)
          Launcherクラスのインスタンスを取得する。
 java.lang.String getLicenseProperty(java.lang.String key)
          ライセンスのプロパティ値を取得する。
 boolean hasLicense()
          ライセンスを取得しているかを取得する。
 java.lang.Object launch(java.lang.String mainclass, java.lang.String[] args)
          アプリのメインクラスのmainメソッドを起動する。
static void main(java.lang.String[] args)
          コマンドを実行する。
 void setOutput(java.io.OutputStream out)
          メッセージの出力先を設定する。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

USERKEY

public static final java.lang.String USERKEY
利用者鍵

関連項目:
定数フィールド値

HOSTNAME

public static final java.lang.String HOSTNAME
ホスト名

関連項目:
定数フィールド値

MACADDR

public static final java.lang.String MACADDR
物理アドレス

関連項目:
定数フィールド値

INETADDR

public static final java.lang.String INETADDR
IPアドレス

関連項目:
定数フィールド値

EXPIRED

public static final java.lang.String EXPIRED
満了日

関連項目:
定数フィールド値

LICKEY

public static final java.lang.String LICKEY
ライセンスキー

関連項目:
定数フィールド値

SIGNATURE

public static final java.lang.String SIGNATURE
署名

関連項目:
定数フィールド値

PUBKEY

public static final java.lang.String PUBKEY
公開鍵

関連項目:
定数フィールド値

ISSUED

public static final java.lang.String ISSUED
発行日

関連項目:
定数フィールド値

VENDOR

public static final java.lang.String VENDOR
発行元

関連項目:
定数フィールド値

PRODUCT

public static final java.lang.String PRODUCT
製品名

関連項目:
定数フィールド値

VERSION

public static final java.lang.String VERSION
製品バージョン

関連項目:
定数フィールド値

LICENSEE

public static final java.lang.String LICENSEE
使用者名

関連項目:
定数フィールド値

SYMETRIC_CIPHER_FACTORY

public static final java.lang.String SYMETRIC_CIPHER_FACTORY
対称鍵暗号

関連項目:
定数フィールド値

SYMETRIC_CIPHER_KEY_LENGTH

public static final java.lang.String SYMETRIC_CIPHER_KEY_LENGTH
対称鍵暗号の鍵長(ビット)

関連項目:
定数フィールド値
メソッドの詳細

main

public static void main(java.lang.String[] args)
コマンドを実行する。 コマンドには次の用法がある。

#用法コマンド行引数 args
1ライセンスを申請する-reg [file]
[-user username] [-prod product] [-ver version]
2アプリケーションを起動するclass [args...]
3コマンド使用方法を表示する-help

ここで、

パラメータ:
args - 引数

getInstance

public static Launcher getInstance(java.net.URL licfile)
                            throws java.io.FileNotFoundException,
                                   java.io.IOException,
                                   com.ogane.license.LicenseSignatureException,
                                   com.ogane.license.SignatureFactoryException,
                                   com.ogane.license.LicenseFormatException,
                                   com.ogane.crypto.CipherFactoryException,
                                   com.ogane.crypto.AsymetricCipherException
Launcherクラスのインスタンスを取得する。 起動の対象となるクラスが暗号化されている場合。 ライセンスが必要となる。

パラメータ:
licfile - ライセンスファイル
戻り値:
インスタンス
例外:
java.io.FileNotFoundException - ライセンスファイルエラー
java.io.IOException - ライセンスファイル入力エラー
com.ogane.license.LicenseSignatureException - ライセンス署名エラー
com.ogane.license.SignatureFactoryException - 署名モジュールエラー
com.ogane.license.LicenseFormatException - ライセンス書式エラー
com.ogane.crypto.CipherFactoryException - 暗号モジュールエラー
com.ogane.crypto.AsymetricCipherException - 非対称暗号モジュールエラー

getInstance

public static Launcher getInstance(java.io.File licfile)
                            throws java.io.FileNotFoundException,
                                   java.io.IOException,
                                   com.ogane.license.LicenseSignatureException,
                                   com.ogane.license.SignatureFactoryException,
                                   com.ogane.license.LicenseFormatException,
                                   com.ogane.crypto.CipherFactoryException,
                                   com.ogane.crypto.AsymetricCipherException
Launcherクラスのインスタンスを取得する。 起動の対象となるクラスが暗号化されている場合。 ライセンスが必要となる。

パラメータ:
licfile - ライセンスファイル
戻り値:
インスタンス
例外:
java.io.FileNotFoundException - ライセンスファイルエラー
java.io.IOException - ライセンスファイル入力エラー
com.ogane.license.LicenseSignatureException - ライセンス署名エラー
com.ogane.license.SignatureFactoryException - 署名モジュールエラー
com.ogane.license.LicenseFormatException - ライセンス書式エラー
com.ogane.crypto.CipherFactoryException - 暗号モジュールエラー
com.ogane.crypto.AsymetricCipherException - 非対称暗号モジュールエラー

getInstance

public static Launcher getInstance()
Launcherクラスのインスタンスを取得する。 起動の対象となるクラスが暗号化されていない場合。

戻り値:
インスタンス

getLicenseProperty

public java.lang.String getLicenseProperty(java.lang.String key)
                                    throws java.io.IOException,
                                           com.ogane.license.LicenseSignatureException,
                                           com.ogane.license.SignatureFactoryException,
                                           com.ogane.license.LicenseFormatException
ライセンスのプロパティ値を取得する。 Launcherクラスの定数フィールドは、 ライセンスの項目としてkeyに指定できる。

パラメータ:
key - ライセンスの項目
戻り値:
ライセンスのプロパティ値
例外:
java.io.IOException - ライセンスファイル入力エラー
com.ogane.license.LicenseSignatureException - ライセンス署名エラー
com.ogane.license.SignatureFactoryException - 署名モジュールエラー
com.ogane.license.LicenseFormatException - ライセンス書式エラー

getDefaultClassPath

public static java.net.URL[] getDefaultClassPath()
既定のクラスパスを取得する。 このクラスをロードしたクラスローダーが検索したクラスパス。

戻り値:
既定のクラスパス

addClassPath

public static void addClassPath(java.net.URL[] paths)
既定のクラスパスに指定したクラスパスを追加する。

パラメータ:
paths - 追加するクラスパス

hasLicense

public boolean hasLicense()
ライセンスを取得しているかを取得する。 ライセンスを取得している場合は暗号化クラスとして起動する。 ライセンスを取得していない場合は通常のクラスとして起動する。

戻り値:
ライセンスを取得している場合は真。

getClassPath

public static java.net.URL[] getClassPath()
クラスパスを取得する。

戻り値:
クラスパス

getClassLoader

public java.lang.ClassLoader getClassLoader()
クラス起動のためのクラスローダを取得する。

戻り値:
クラスローダ

launch

public java.lang.Object launch(java.lang.String mainclass,
                               java.lang.String[] args)
                        throws com.ogane.license.PlainTextInvocationException,
                               com.ogane.license.CipheredTextInvocationException,
                               com.ogane.license.LicenseSignatureException,
                               com.ogane.license.LicenseAuthenticationException,
                               com.ogane.license.InvocationException
アプリのメインクラスのmainメソッドを起動する。 アプリには、main(String[])メソッドを持つクラス、 つまりメインクラスがなければならない。

パラメータ:
mainclass - メインクラス名
args - mainメソッドの引数
戻り値:
メソッドの返り値
例外:
com.ogane.license.PlainTextInvocationException - 非暗号化クラス起動エラー
com.ogane.license.CipheredTextInvocationException - 暗号化クラス起動エラー
com.ogane.license.LicenseSignatureException - ライセンス署名エラー
com.ogane.license.LicenseAuthenticationException - ライセンス認証エラー
com.ogane.license.InvocationException - 起動エラー

construct

public java.lang.Object construct(java.lang.String classname,
                                  java.lang.Object[] args,
                                  java.lang.Class[] classes)
                           throws com.ogane.license.PlainTextInvocationException,
                                  com.ogane.license.CipheredTextInvocationException,
                                  com.ogane.license.LicenseSignatureException,
                                  com.ogane.license.LicenseAuthenticationException,
                                  com.ogane.license.InvocationException
指定したクラスのコンストラクタを起動する。

パラメータ:
classname - クラス名
args - コンストラクタの引数
classes - コンストラクタの引数の型
戻り値:
生成されたインスタンス
例外:
com.ogane.license.PlainTextInvocationException - 非暗号化クラス起動エラー
com.ogane.license.CipheredTextInvocationException - 暗号化クラス起動エラー
com.ogane.license.LicenseSignatureException - ライセンス署名エラー
com.ogane.license.LicenseAuthenticationException - ライセンス認証エラー
com.ogane.license.InvocationException - 起動エラー

construct

public java.lang.Object construct(java.lang.String classname,
                                  java.lang.Object[] args)
                           throws com.ogane.license.PlainTextInvocationException,
                                  com.ogane.license.CipheredTextInvocationException,
                                  com.ogane.license.LicenseSignatureException,
                                  com.ogane.license.LicenseAuthenticationException,
                                  com.ogane.license.InvocationException
指定したクラスのコンストラクタを起動する。 コンストラクタの引数の型は、コンストラクタの引数により自動的に決定。

パラメータ:
classname - クラス名
args - コンストラクタの引数
戻り値:
生成されたインスタンス
例外:
com.ogane.license.PlainTextInvocationException - 非暗号化クラス起動エラー
com.ogane.license.CipheredTextInvocationException - 暗号化クラス起動エラー
com.ogane.license.LicenseSignatureException - ライセンス署名エラー
com.ogane.license.LicenseAuthenticationException - ライセンス認証エラー
com.ogane.license.InvocationException - 起動エラー

construct

public java.lang.Object construct(java.lang.String classname)
                           throws com.ogane.license.PlainTextInvocationException,
                                  com.ogane.license.CipheredTextInvocationException,
                                  com.ogane.license.LicenseSignatureException,
                                  com.ogane.license.LicenseAuthenticationException,
                                  com.ogane.license.InvocationException
指定したクラスのコンストラクタを起動する。コンストラクタの引数が無い場合。

パラメータ:
classname - クラス名
戻り値:
生成されたインスタンス
例外:
com.ogane.license.PlainTextInvocationException - 非暗号化クラス起動エラー
com.ogane.license.CipheredTextInvocationException - 暗号化クラス起動エラー
com.ogane.license.LicenseSignatureException - ライセンス署名エラー
com.ogane.license.LicenseAuthenticationException - ライセンス認証エラー
com.ogane.license.InvocationException - 起動エラー

execute

public java.lang.Object execute(java.lang.Object obj,
                                java.lang.String methodname,
                                java.lang.Object[] args,
                                java.lang.Class[] classes)
                         throws java.lang.NoSuchMethodException,
                                java.lang.reflect.InvocationTargetException,
                                java.lang.IllegalAccessException
指定したクラスのインスタンスメソッドを起動する。

パラメータ:
obj - 対象となるクラスのインスタンス
methodname - メソッド名
args - メソッド引数
classes - メソッド引数の型
戻り値:
メソッドの返り値
例外:
java.lang.NoSuchMethodException - メソッド名エラー
java.lang.reflect.InvocationTargetException - 起動エラー
java.lang.IllegalAccessException - アクセス違反

execute

public java.lang.Object execute(java.lang.Object obj,
                                java.lang.String methodname,
                                java.lang.Object[] args)
                         throws java.lang.NoSuchMethodException,
                                java.lang.reflect.InvocationTargetException,
                                java.lang.IllegalAccessException
指定したクラスのインスタンスメソッドを起動する。 メソッド引数の型は、メソッド引数により自動的に決定。

パラメータ:
obj - 対象となるクラスのインスタンス
methodname - メソッド名
args - メソッド引数
戻り値:
メソッドの返り値
例外:
java.lang.NoSuchMethodException - メソッド名エラー
java.lang.reflect.InvocationTargetException - 起動エラー
java.lang.IllegalAccessException - アクセス違反

execute

public java.lang.Object execute(java.lang.Object obj,
                                java.lang.String methodname)
                         throws java.lang.NoSuchMethodException,
                                java.lang.reflect.InvocationTargetException,
                                java.lang.IllegalAccessException
指定したクラスのインスタンスメソッドを起動する。 メソッド引数が無い場合。

パラメータ:
obj - 対象となるクラスのインスタンス
methodname - メソッド名
戻り値:
メソッドの返り値
例外:
java.lang.NoSuchMethodException - メソッド名エラー
java.lang.reflect.InvocationTargetException - 起動エラー
java.lang.IllegalAccessException - アクセス違反

execute

public java.lang.Object execute(java.lang.String classname,
                                java.lang.String methodname,
                                java.lang.Object[] args,
                                java.lang.Class[] classes)
                         throws com.ogane.license.PlainTextInvocationException,
                                com.ogane.license.LicenseSignatureException,
                                com.ogane.license.LicenseAuthenticationException,
                                com.ogane.license.InvocationException,
                                com.ogane.license.CipheredTextInvocationException,
                                java.lang.IllegalAccessException
指定したクラスのスタティックメソッドを起動する。

パラメータ:
classname - クラス名
methodname - メソッド名
args - メソッド引数
classes - メソッド引数の型
戻り値:
メソッドの返り値
例外:
com.ogane.license.PlainTextInvocationException - 非暗号化クラス起動エラー
com.ogane.license.CipheredTextInvocationException - 暗号化クラス起動エラー
com.ogane.license.LicenseSignatureException - ライセンス署名エラー
com.ogane.license.LicenseAuthenticationException - ライセンス認証エラー
java.lang.IllegalAccessException - アクセス違反
com.ogane.license.InvocationException - 起動エラー

execute

public java.lang.Object execute(java.lang.String classname,
                                java.lang.String methodname,
                                java.lang.Object[] args)
                         throws com.ogane.license.PlainTextInvocationException,
                                com.ogane.license.LicenseSignatureException,
                                com.ogane.license.LicenseAuthenticationException,
                                com.ogane.license.InvocationException,
                                com.ogane.license.CipheredTextInvocationException,
                                java.lang.IllegalAccessException
指定したクラスのスタティックメソッドを起動する。 メソッド引数の型は、メソッド引数により自動的に決定。

パラメータ:
classname - クラス名
methodname - メソッド名
args - メソッド引数
戻り値:
メソッドの返り値
例外:
com.ogane.license.PlainTextInvocationException - 非暗号化クラス起動エラー
com.ogane.license.CipheredTextInvocationException - 暗号化クラス起動エラー
com.ogane.license.LicenseSignatureException - ライセンス署名エラー
com.ogane.license.LicenseAuthenticationException - ライセンス認証エラー
java.lang.IllegalAccessException - アクセス違反
com.ogane.license.InvocationException - 起動エラー

execute

public java.lang.Object execute(java.lang.String classname,
                                java.lang.String methodname)
                         throws com.ogane.license.PlainTextInvocationException,
                                com.ogane.license.LicenseSignatureException,
                                com.ogane.license.LicenseAuthenticationException,
                                com.ogane.license.InvocationException,
                                com.ogane.license.CipheredTextInvocationException,
                                java.lang.IllegalAccessException
指定したクラスのスタティックメソッドを起動する。 メソッド引数が無い場合。

パラメータ:
classname - クラス名
methodname - メソッド名
戻り値:
メソッドの返り値
例外:
com.ogane.license.PlainTextInvocationException - 非暗号化クラス起動エラー
com.ogane.license.CipheredTextInvocationException - 暗号化クラス起動エラー
com.ogane.license.LicenseSignatureException - ライセンス署名エラー
com.ogane.license.LicenseAuthenticationException - ライセンス認証エラー
java.lang.IllegalAccessException - アクセス違反
com.ogane.license.InvocationException - 起動エラー

setOutput

public void setOutput(java.io.OutputStream out)
メッセージの出力先を設定する。既定値は標準出力。

パラメータ:
out - メッセージの出力先

JLicenser
Javaプログラム保護ツール

Copyright (c) 2008 大金システム設計事務所