Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用依赖项从SVN预提交钩子运行jar文件,然后传递参数?_Java_Svn - Fatal编程技术网

Java 如何使用依赖项从SVN预提交钩子运行jar文件,然后传递参数?

Java 如何使用依赖项从SVN预提交钩子运行jar文件,然后传递参数?,java,svn,Java,Svn,我正在使用用java开发的预提交钩子。现在我需要在pre-commit中运行它 列表项 如何使用依赖关系运行jar文件? 我是否必须使可执行jar文件从预提交运行? 如何给jar文件提供类路径和参数 目前,我在pre-commit中以这种方式运行,这很好。现在我需要把它转移到生产上 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin/java -Xdebug -Xrunjdwp:transport=dt_soc

我正在使用用java开发的预提交钩子。现在我需要在pre-commit中运行它

  • 列表项
如何使用依赖关系运行jar文件? 我是否必须使可执行jar文件从预提交运行? 如何给jar文件提供类路径和参数

目前,我在pre-commit中以这种方式运行,这很好。现在我需要把它转移到生产上

 /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

我必须制作一个可执行的Jar文件吗?

您不需要创建一个可运行的Jar,但这是建议的,因为它使事情变得更容易

基本上,如果运行Jar文件,则必须指定包含
main()
方法的类:

java -jar myjar.jar x.y.z.Main
如果在
MANIFEST.MF
文件中定义了
Main类:x.y.z.Main
属性,则可以通过以下方式运行Jar文件:

java -jar myjar.jar
如何为Jar文件提供类路径?

当您使用
java-jar…
命令运行某些东西时,
-classpath…
属性将被删除。原因是安全性(可以对Jar文件进行数字签名,以确保它们不被修改,让java加载具有相同内容但具有劫持功能的不同依赖项Jar文件非常容易)

解决方案很简单:将
类路径:…
属性也包括在
MANIFEST.MF
文件中,就像处理
主类:…
一样

如何为Jar文件提供参数?

正如您为一个简单的Java程序(和it)提供参数一样:


是的,它现在只处理一个文件。谢谢@rlegendi 工作副本

 REPOS="$1"
 TXN="$2"
 java -jar /Users/testuser/Documents/SCS/SCS.jar pre-commit file -c /Users/testuser/Documents/SCSAPI/config.xml -repos $REPOS -trxn $TXN

谢谢你的回答。我现在正在MANIFEST.MF中创建类路径,让我们看看它是如何工作的。
 REPOS="$1"
 TXN="$2"
 java -jar /Users/testuser/Documents/SCS/SCS.jar pre-commit file -c /Users/testuser/Documents/SCSAPI/config.xml -repos $REPOS -trxn $TXN