繁体   English   中英

如何强制从python运行jar并与SDK 1.7一起运行?

[英]How can I call run a jar from python while obligating it to run with SDK 1.7?

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

说我有:

java -jar parameter1 ... paramterN

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

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

所以,我想拥有这个:

python MyJarRunner.py JarPath

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

我的问题是,这个Jar需要Java SDK 1.7才能运行而不会出现运行时错误。 如果存在的话,如何确定我将使用SDK 1.7运行此Jar? 这需要在没有任何关于SDK 1.7位置的先验知识的情况下在其他计算机上运行。

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

而不是使用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

有两种解决方案:

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

  1. Jar绝不是黑匣子---它基本上是一个zip文件,因此您可以将其解压缩,添加自己的用于计算参数的主类,更改MANIFEST.MF中的Main-Class属性,即可完成操作。
  2. 考虑其他部署替代方案,例如java webstart,它允许您下载几个jar(不仅是黑盒jar,还包括您编写的其他jar),它们指定了JDK版本和其他内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM