shスクリプトJavaプログラムの実行

6522 ワード

1.Jarパッケージまたはリソースフォルダを参照しない
最も簡単なプログラムHello World.
まずハローを作成します.java
public class Hello {

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

	}

}
コンパイル生成Hello.classファイル.以下、shスクリプトでHelloを実行する
以上で生成するHello.classファイルをメインフォルダにコピーし、スクリプトファイルex.shを新規作成
#!/bin/bash
cd /home/xyw/
/usr/lib/jvm/jdk1.7.0_21/bin/java Hello
説明:
cd/home/xyw/ハローにナビゲートします.classファイルが存在するディレクトリ
/usr/lib/jvm/jdk1.7.0_21はjdkのインストールディレクトリです
Helloは実行するjavaプログラムです
保存、ex.shへの実行権限の追加
chmod 777 ex.sh
ex.shを実行
./ex.sh
ハローワールドを印刷
2、jarパッケージまたはリソースフォルダの参照
Javaでデータベースプログラムを記述する場合、mysql-connector-java-5.1244-binなどのデータエンジンのjarパッケージを参照することが多い.JArまたはあなたが作成したプログラムにはsrcソースファイルだけでなく、リソースフォルダも含まれています.次に、スクリプトファイルに参照する必要があるファイルを含める方法をまとめます.
新しいjavaファイル:Test.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;


public class Test {

	public static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
	public static final String DBURL = "jdbc:mysql://127.0.0.1:3306/test";
	public static final String DBUSER = "root";
	public static final String DBPASS = "1234";
		
	
	public static void main(String[] args) throws Exception {
		Connection conn = null;
		Statement stat = null;
		ResultSet rs = null;
		
		Class.forName(DBDRIVER);
		String sql = "SELECT * FROM keyword";
		conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);
		stat = conn.createStatement();
		rs = stat.executeQuery(sql);
		while(rs.next())
		{
			System.out.println(rs.getInt(1) + ": " + rs.getString(2));
		}

	}

}
これはmysqlデータを呼び出す基本的なプログラムです.コンパイル、Testを生成する.class
Test.classファイルは:/home/xyw/タスク/xxフォルダの下に配置されます.
方法(1):
mysql-connector-java-5.1244-bin.jarパッケージを解凍し、解凍したcom orgフォルダを/home/xyw/タスク/xxフォルダの下にコピーし、Test.classとcom orgは同じディレクトリにあります.スクリプトの作成:
#!/bin/bash
cd /home/xyw/  /xx
/usr/lib/jvm/jdk1.7.0_21/bin/java Test  
も同様に保存し、実行権限を追加し、実行し、クエリー結果を得る.
方法(2):推奨使用
mysql-connector-java-5.1244-binを解凍しません.JAr、java-cpコマンドを使用してファイルクラス検索パスを指定
#!/bin/bash
cd /home/xyw/  /xx
/usr/lib/jvm/jdk1.7.0_21/bin/java  -cp .:./mysql-connector-java-5.1.24-bin.jar Test
現在のディレクトリxxの下には:Test.class 、mysql-connector-java-5.1.24-bin.jar
JAvaのcpコマンド機能は以下の通りです:(cpとclass path機能は同じです)
-cp
-classpath用:クラスファイルの検索に使用されるディレクトリ、JARファイル、ZIPファイルのリストを区切ります.複数のディレクトリまたはファイルの間にコロン:分割.解析/usr/lib/jvm/jdk 1.7.0_21/bin/java  -cp .:./mysql-connector-java-5.1.24-bin.JAr Testという命令の意味
同様に、/usr/lib/jvm/jdk 1.7.0_21 jdkのインストールディレクトリを示します.-cpの後ろの最初の.現在のディレクトリを表し、現在のディレクトリの下でクラスTestを検索することを目的とする.「エラー:プライマリクラスTestが見つからないかロードできません」とエラーが表示されます.中間のコロンは間隔の役割を果たします../は、mysql-connector-java-5.1244-binの現在のディレクトリの下にあるサブディレクトリです.jarファイルで検索します.最後に実行するTestクラスです.
私はミスを犯してTestを-cpの前に置いたのでmysql-connector-java-5.1244-binになりました.jarはまったく検索されず、成功しなかった.だから、-cpコマンドはjavaの後に直接付いていることを覚えておいてください.
方法(3):推奨使用
ソースファイルをjarパケットとして作成し、参照するリソースファイルjarパケットと同じディレクトリまたは異なるディレクトリ(すなわち、以下、jarパケットの作成:2 jarパケットの参照-メソッド(2))に配置し、shスクリプトコマンドで作成したjarパケットを実行します.
setp 1:jarパッケージを作成します.以下2、jarパッケージを参照する方法(2)
Step 2:作成するjarパッケージTest.JArと参照jarパッケージmysql-connector-java-5.1244-bin.JArは、/home/xywと仮定して同じディレクトリに配置されます.
setp 3:スクリプトコマンドを書く:
!#/bin/bash
cd /home/xyw
/usr/lib/jvm/jdk1.7.0_21/bin/java -jar Test.jar
分析:javaコマンドはTestを実行します.JArパッケージは、まずjarパッケージのManifestファイルを見つけ、Main-Classが指定した実行する主なメソッドを決定し、Class-Pathが指定したリソースパスに基づいて実行に必要なリソースパッケージを探し、Testメソッドを実行します.
jarパッケージの作り方を具体的に紹介します.
拡張:実行可能なjarパッケージの作成
1、jarパッケージおよびリソースファイルを参照しない
最初のハローでclassを例に挙げます.Hello.classはディレクトリ:/home/xyw/タスク/xx内に存在する
そうだなclassは実行可能なjarファイルを作成します.
Step 1:jarファイルの作成
jar cvf Hello.jar Hello.class
setp 2:MANIFESTを修正する.MFファイル
MANIFESTを開きます.MFファイル、ご覧の通り:
Manifest-Version: 1.0
Created-By: 1.7.0_21 (Oracle Corporation)
mainメソッドを含むクラスを追加:Main-Class:Test
次のようになります.
Manifest-Version: 1.0
Created-By: 1.7.0_21 (Oracle Corporation)
Main-Class: Test

注意:Main-Class
コロンの後ろには必ず
スペースを1つ作成し、クラス名を書きます.
保存、jarパッケージの更新、jarパッケージの実行
java -jar Hello.jar
出力:Hello World
2、jarパッケージの参照
それでclassファイルを例に挙げます.Test.classファイルはディレクトリ:/home/xyw/タスク/xx内に存在します.
なぜならclassはmysql-connector-java-5.1244-binに依存する.JArパッケージは、より具体的には、このパッケージのcomフォルダとorgフォルダに依存します.
方法(1):
comとorgフォルダとTestだけをclassは実行可能なjarパッケージに追加されます.
setp 1:mysql-connector-java-5.1244-bin.JArを解凍し、得られたcomとorgフォルダを/home/xyw/タスク/xxディレクトリの下に置きます.
現在/home/xyw/タスク/xxディレクトリの下のファイル(クリップ)は、Test.class 、com、org
setp 2:jarパッケージの作成
jar cvf Test.jar Test.class com/ org/
は、Test.class、META-INF、com、orgのjarパッケージ
Step 3:MANIFESTを修正する.MFファイル
Manifest-Version: 1.0
Created-By: 1.7.0_21 (Oracle Corporation)
Main-Class: Test
保存、jarパッケージの更新、実行
java -jar Test.jar

方法(2):推奨方法
方法1では、mysql-connector-java-5.1244-binからcomとorgファイルを使用します.jarはjarパッケージに追加するもmysql-connector-java-5.1244-binを追加するもよい.JArは単独で保管するが、MANIFESTに保管しなければならない.MFファイルにmysql-connector-java-5.1244-binを追加します.jarのパス.
setp 1:mysql-connector-java-5.1244-bin.JArとTestclassは、/home/xyw/タスク/xxと仮定して同じディレクトリに配置されます.
Step 2:Test.class jarパッケージに追加
jar cvf Test.jar Test.class 
step 3:MANIFESTを修正する.MFファイル
Manifest-Version: 1.0
Created-By: 1.7.0_21 (Oracle Corporation)
Main-Class: Test
Class-Path: ./mysql-connector-java-5.1.24-bin.jar
説明:Class-Path:このjarパケットを実行するMain-Classに対応するクラスである場合のクラスパケットの探索経路である.現在のjarが存在するパスを示します../mysql-connector-java-5.1.24-bin.JArは、現在のTestを表しています.JArパッケージは同じパスの下にあるmysql-connector-java-5.1244-bin.jarパッケージ.mysql-connector-java-5.1244-binと仮定して、参照するパッケージと現在のjarを同じディレクトリの下に置くことができます.JArを/home/xyw/ディレクトリの下に置くと、Class-Pathは、Class-Path:/home/xyw/mysql-connector-java-5.1244-binに変更する.jar
注意:複数のjarパッケージ間はスペースで区切られており、行ごとに最大72文字まで改行されます.改行はスペースで始まる必要があります(参照:http://qyongkang.iteye.com/blog/1666640)
保存、実行
java -jar Test.jar

まとめ:
推奨方法:
1、shスクリプトはjavaプログラムを実行し、参照パッケージとソースコードを同じファイルディレクトリの下に配置し、javaコマンドは-cpを指定してプログラムを実行する.
2、実行可能なjarパッケージを作成し、jarパッケージと参照パッケージを同じディレクトリの下に配置し、Class-Pathを使用して参照パッケージディレクトリを指定する.
本文はxyw_Eliotオリジナル、転載は出典を明記してください:http://blog.csdn.net/xyw_eliot/article/details/8828182