0

我想用创建这些参数的python代码包装一个获取许多参数的jar。

说我有:

java -jar parameter1 ... paramterN

其中 N 不是那么大,但是当可以自动分配这些参数时,用户一次又一次地填充它是一种负担。

jar 是一个黑盒子,因此我无法更改其逻辑来计算这些参数本身。

所以,相反,我想要这个:

python MyJarRunner.py JarPath

当 MyJarRunner 将使用计算的参数调用此 Jar 时。

我的问题是这个 Jar 需要 Java SDK 1.7 才能在没有运行时错误的情况下运行。如果存在,我如何确定我将使用 SDK 1.7 运行这个 Jar?这需要在不了解 SDK 1.7 位置的不同计算机上运行。

带有批处理脚本的解决方案也可能适用。

4

2 回答 2

0

而不是使用 java 命令,使用"C:\Program Files\Java\jdk1.7.0\bin\java.exe" -jar ...

检查文件是否确实存在...

from os import path, access, R_OK  # W_OK for write permission.
PATH='C:\Program Files\Java\jdk1.7.0\'
if path.exists(PATH) and path.isfile(PATH) and access(PATH, R_OK):
    //execute
else:
    //whatever you wanna do if it doesn't exist
于 2012-05-28T18:32:43.917 回答
0

有两种解决方案:

两者都假设您可以编写自己的主类。

  1. Jar 绝不是一个黑盒子——它基本上是一个 zip 文件,所以你可以解压缩它,添加你自己的计算参数的主类,更改 MANIFEST.MF 中的 Main-Class 属性,你就完成了。
  2. 考虑其他部署替代方案,例如 java webstart,它允许您下载几个 jar(不仅是黑盒 jar,还包括您编写的其他 jar)指定 JDK 版本和其他内容。
于 2012-05-28T19:17:10.117 回答