-1

我正在尝试使用类似下面的 open 3 但它失败并出现以下错误

    0:[/home/gangg/jdk1.6.0_30/jre/bin/java]
1:[ -cp ]
2:[/scratch/agentHome/osbssl/plugins/oracle.sysman.emas.agent.plugin_12.1.0.4.0/archives/em-pp-osbProv-pojo.jar:/scratch/gangg/wls1036/middleware/wlserver_10.3/server/lib/weblogic.jar:/scratch/gangg/wls1036/middleware/Oracle_OSB1/lib/sb-kernel-api.jar:/scratch/gangg/wls1036/middleware/Oracle_OSB1/lib/sb-kernel-impl.jar:/scratch/gangg/wls1036/middleware/Oracle_OSB1/modules/com.bea.common.configfwk_1.6.0.0.jar]
3:[ -Dweblogic.security.SSL.trustedCAKeyStore=/scratch/agentHome/osbssl/agent_inst/sysman/config/montrust/AgentTrust.jks]
4:[oracle.sysman.pp.osbprov.util.OSBResourceImportUtil]
5:[/scratch/agentHome/osbssl/core/12.1.0.3.0/EMStage/PAF/osbprov/A051D1BF44FC91B2B624B08B21932FD6_1367241748834/target_/Farm02_base_domain/base_domain/HelloWorld.jar]
6:[test.com]
7:[7771]
8:[weblogic]
9:[true]
10:[true]
11:[true]
12:[true]
13:[true]
14:[null]
15:[11.1.1.6]
16:[t3s]

     $pid = open3( \*HANDLE_IN, \*HANDLE_OUT, \*HANDLE_ERR, @args);

 open3: exec of /home/gangg/jdk1.6.0_30/jre/bin/java -cp /scratch/agentHome/osbssl/plugins/oracle.sysman.emas.agent.plugin_12.1.0.4.0/archives/em-pp-osbProv-pojo.jar:/scratch/gangg/wls1036/middleware/wlserver_10.3/server/lib/weblogic.jar:/scratch/gangg/wls1036/middleware/Oracle_OSB1/lib/sb-kernel-api.jar:/scratch/gangg/wls1036/middleware/Oracle_OSB1/lib/sb-kernel-impl.jar:/scratch/gangg/wls1036/middleware/Oracle_OSB1/modules/com.bea.common.configfwk_1.6.0.0.jar
-Dweblogic.security.SSL.trustedCAKeyStore=/scratch/agentHome/osbssl/agent_inst/sysman/config/montrust/AgentTrust.jks abc.xyz.OSBResourceImportUtil /scratch/agentHome/osbssl/core/12.1.0.3.0/EMStage/PAF/osbprov/A051D1BF44FC91B2B624B08B21932FD6_1367231855615/target_/Farm02_base_domain/base_domain/HelloWorld.jar test.xyz.com 7771 weblogic true true true true true null 11.1.1.6 t3s failed at 
 /tmp/JOB_DB7E7A13B78883EAE040E80A57827806/deploy.pl line 157
4

1 回答 1

2

我认为这不是perl问题。java代码失败。使用相同的命令行手动运行它并检查返回值并查看打印到屏幕上的内容。

我稍微检查了一下这个问题。如果调用的 java 代码返回异常,则open3返回pid并且可以读取 stderr。如果java代码名称错误,那么java也会返回异常,因此可以读取 stderr。但是,如果 java 解释器的路径错误,则可能会收到以下perl错误消息:

open3: exec of gijx -cp . a x failed at ./a.pl line 8

所以我假设java(我使用gij而不是java)的路径不正确或perl脚本无权运行它。

于 2013-04-29T11:04:12.833 回答