我正在尝试使用类似下面的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
答案 0 :(得分: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
脚本无权运行它。