繁体   English   中英

在命令行上运行iSeries上的Java程序

[英]Running Java program on iSeries on command line

我已经创建了一个Java程序,并且想要从iSeries中运行它。 我已经能够从QSH运行它所以我知道它编译并运行正常,但我需要从命令行运行它而不是QSH。 该程序需要jsch-0.1.55.jar文件才能使程序正常工作,并且我不能100%确定如何使用它引用的程序调用jar文件。

我试过了

RUNJVA CLASS(ANL0106J) CLASSPATH('/JAVA/Jars/jsch-0.1.55.jar')

那没用。 然后我试了一下

RUNJVA CLASS('/JAVA/Jars.jsch-0.1.55.jar':. ANL0106J) CLASSPATH('/Java/Jars/jsch-0.1.55.jar')

那也行不通。 我究竟做错了什么?

成功完成了许多次之后,您的上一次尝试似乎已经接近完成,但是将CLASS参数更改为指向包含main方法的类文件。 ANL0106J看起来像一个很奇怪的类名称。.例如:

CLASS(com.company.test.ApplicationMain)

CLASSPATH使用完整路径名指向所需的jar。 例如:

RUNJVA CLASS(com.company.test.ApplicationMain) CLASSPATH('/test/app.jar:/test/dependency.jar')

为了使事情变得容易一些,您甚至可以通过使用诸如maven或Gradle之类的内容来创建Java构建,然后将其配置为生成胖jar,从而将依赖项包含在JAR文件中。 本质上,这些jar包含您的应用程序依赖的其他JAR文件。 这样,即使例如在ibm i机器上更新单个jar文件后,您也可以确定应用程序将继续运行。 例如,使用gradle项目可以很容易地设置Shadowjar,该项目将为您完成。 然后,只需要运行bootjar gradle任务并使用RUNJVA命令即可,只需指向您的单个JAR。 请不要陷入依赖管理地狱。 通过使用maven或gradle之类的东西来节省自己和未来的开发者。 使用Maven存储库,甚至还可以在本地托管Sonatype Nexus之类的工具,甚至可以使用Gradle / maven管理依赖关系。 如果您的JAR具有有效的清单,则无需执行其他任何操作。 它看起来像这样:

RUNJVA CLASS('/test/app.jar')

特别适用于使用CI,它可以从GIT存储库为您构建JAR并将胖jar放在正确的路径中,而不必执行任何操作。 简而言之,使用apache WebSphere Application Server在as400上设置Jenkins并不困难,简而言之,该选项可用于托管WAR文件(尽管:P可以做很多事情)。

地狱,仅对RUNJVA命令使用一个jar,这也将加快启动应用程序的时间,因为它只需要验证一个jar。 只是值得深思。 顺便说一下,这是Maven条目: https : //mvnrepository.com/artifact/com.jcraft/jsch/0.1.55

关于java / react开发人员的注意事项:是的,同事Java /反应开发人员,可以使用RUNJVA命令来使ibm i开发现代化以运行Spring启动应用程序! 我们使用弹簧启动后端系统成功运行反应前端应用程序,工作速度非常快,正如预期的那样:)

(在Reddit上给您的答案是相同的,只是在此平台上使之对正在Stackoverflow上寻找它的其他人可见)

暂无
暂无

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

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