2

Javaで開発されたプリコミットフックを使用しています。ここで、事前コミット内で実行する必要があります。

  • リスト項目

依存関係のあるjarファイルを実行するにはどうすればよいですか? プリコミットから実行するには、実行可能な jar ファイルを作成する必要がありますか? jarファイルにクラスパスとパラメータを与える方法は?

現在、私は正常に動作している事前コミット内でこのように実行しています。今、私はそれを本番環境に移動する必要があります

 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin/java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=11111 
 $JAVA_OPTS -Dfile.encoding=MacRoman 
-classpath 
 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/lib/deploy.jar:
 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/lib/dt.jar:
 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/lib/javaws.jar:
 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/lib/jce.jar:
 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/lib/jconsole.jar:
 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/lib/management-agent.jar:
 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/lib/plugin.jar:
/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/lib/ext/sunjce_provider.jar:
 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/lib/ext/sunpkcs11.jar:
 /Users/testuser/Documents/Dev/projects/SCS/sc/SCS/SCS/SCSAPI/classes:
 /Users/testuser/Documents/Dev/projects/SCS/sc/g3/_lib/hibernate-tools.jar:
 /Users/testuser/Documents/Dev/projects/SCS/sc/g3/_lib/dom4j-1.4.jar:
 /Users/testuser/Documents/Dev/projects/SCS/sc/g3/_lib/commons-logging.jar:
 /Users/testuser/Documents/Dev/projects/SCS/sc/g3/_lib/commons-collections-2.1.1.jar:
 /Users/testuser/Documents/Dev/projects/SCS/sc/g3/_lib/mysql-connector-java-5.1.22-bin.jar:
 /Users/testuser/Documents/Dev/projects/SCS/sc/g3/_lib/hibernate2.jar:
 /Users/testuser/Documents/Dev/projects/SCS/sc/g3/_lib/ehcache-1.1.jar 
 com.ticoon.scs.SCSMain 
 pre-commit file -c /Users/testuser/Documents/Dev/projects/SCS/sc/SCS/SCS/config.xml -v -repos $REPOS -trxn $TXN
4

2 に答える 2

0

実行可能な Jar ファイルを作成する必要がありますか?

実行可能な Jar を作成する必要はありませんが、作業が簡単になるため、作成することをお勧めします。

基本的に、Jar ファイルを実行する場合、main()メソッドを含むクラスを指定する必要があります。

java -jar myjar.jar x.y.z.Main

Main-Class: x.y.z.Mainファイルに属性が定義されている場合は、次の方法MANIFEST.MFで Jar ファイルを実行できます。

java -jar myjar.jar

Jarファイルにクラスパスを与える方法は?

java -jar ...コマンドで何かを実行すると、-classpath ...プロパティが削除されます。その理由はセキュリティです (Jar ファイルは、変更されていないことを確認するためにデジタル署名することができます。Java に、同じ内容で機能がハイジャックされた別の依存関係の Jar ファイルをロードさせるのは非常に簡単です)。

解決策は簡単です。 の場合と同じように、Class-Path: ...属性もMANIFEST.MFファイルに含めますMain-Class: ...

Jarファイルにパラメータを与える方法は?

単純な Java プログラムにパラメーターを与える場合 (およびマニュアルで指定されている場合):

java -jar myjar.jar arg1 arg2 ... argN
于 2012-11-27T16:45:00.117 に答える