2012-02-23 92 views

答えて

10

mainメソッドのみを呼び出すことができます。 mainメソッドを設計して、必要なメソッドを呼び出すようにします。

と言うときは、mainメソッドを呼び出すときに明示的に呼び出さないでください。これは、あなたがそれを呼び出すときにJavaプログラムへの唯一のエントリポイントです。

あなたのクラスがどのように見える場合:

package com.foo; 

public class Test { 
    public static void main(String[] args) { 
     System.out.println("Hello World!"); 
    } 
} 

あなたが示した構造でclassesディレクトリにいる場合は、(com/foo/Test.classを見つけることができるディレクトリ内からmainを起動するには、次のコマンドラインを使用することができますはるか下):

java com.foo.Test 

あなたは)ディレクトリを(異なるからそう遠く以下のディレクトリ構造を参照してくださいしたい場合は、クラスパスを設定する必要があります。

java -cp /path/to/classes com.foo.Test 

わかりやすくするために以下のディレクトリ構造を仮定します。

-path 
    -to 
     -classes 
      -com 
       -foo 
        >Test.class 
+0

ああ、途中で君たちのいずれかがどこ私はすぐにリグアップディレクトリ構造(テキストをすることができますきちんとしたオンラインサービスを知っていますかフォーマット)? – adarshr

2

シェルスクリプトから直接任意のメソッドを実行することはできません。そのメソッドを何らかの方法で外部に公開する必要があります。

最も簡単な方法は、テストするコードを直接呼び出すmainメソッドを記述することです。

また、パラメータを使用して一種のランチャーとして動作するJavaアプリケーションを使用することもできます。その最も重大な形式では、クラス名とメソッド名を引数として取り、クラスをインスタンス化し、リフレクションによってメソッドを呼び出すアプリケーションを想像することができます。同様の方法で、少し優雅ですが、必要に応じてサーバー上の特定のメソッドを起動するために、JMXを介して公開されている操作を呼び出すアプリケーションを使用します。

最終的には、bash(または同等のもの)はJVMバイトコードを理解しません。 は、メソッドを実行するためにJavaプロセスを起動する必要があります。mainメソッドを実行すると、必要なものが呼び出されます。

0

あなたはシェルスクリプトを使用して、このようなあなたのJavaプログラムを呼び出すことができます。

`#!/bin/bash 
JAVA_HOME=/usr/lib/jvm/jdk1.6.0_02 
CLASSPATH=/home/freddy/myapp/lib/whatever.jar: . 
$JAVA_HOME/bin/java -cp $CLASSPATH MyJavaClass 
exit 0` 
関連する問題