从Powershell调用jar文件并处理返回值

时间:2013-05-20 01:21:22

标签: java powershell x86

我有以下情况:
 我有一个Powershell脚本foo.ps1
 在这个脚本中,我想调用bar.jar
 3. Bar.jar针对Oracle DB执行查询  4.该查询的结果应该传递回foo.ps1

我使用jar进行数据库调用的原因是因为我安装了32位Oracle库,但是我无法强制Powershell以32位模式运行。我已经尝试了类似的解决方案 How to execute powershell script in 64 bit machine?
然而,虽然它在控制台中说它切换到32位模式,但我仍然得到异常“尝试加载Oracle客户端库引发BadImageFormatException。在安装了32位Oracle客户端组件的64位模式下运行时会出现此问题。”

干杯!

1 个答案:

答案 0 :(得分:1)

我使用了32位PowerShell控制台的32位ODAC库。

[System.Reflection.Assembly]::LoadWithPartialName('Oracle.DataAccess')

使用上述行导入后,您可以创建Oracle对象并连接到数据库并运行查询。

您也可以在32位后台作业中运行它。

Start-Job -ScriptBlock $oracle_script_block -RunAs32 | Wait-Job | Receive-Job

如果您仍想使用Java代码,可以像这样运行它:

$output = & java.exe -jar <oracle JAR>
Write-Host "Exit code: $LASTEXITCODE"
Write-Host "Output: $output"

正如zdan指出的那样,确保java.exe是32位。

& java.exe -version