【问题标题】:Executing jar from q从 q 执行 jar
【发布时间】:2015-03-30 07:12:26
【问题描述】:

我正在尝试从 q 进程运行可执行 jar,但加载时卡住了(没有错误)。

当从 cmd 运行 jar 时,它工作正常。

在cmd中:

java -cp "C:/javaWorkspaces/someDirectory/myJar.jar" myPackage.myClass

在q:

system "java -cp \"C:/javaWorkspaces/someDirectory/myJar.jar\" myPackage.myClass"

另请注意,该 jar 使用外部 jar(使用 eclipse 打包),创建一个新线程并连接到 Internet。似乎后者可能是问题(在做了一些手动sysout 调试之后)

对此我能做些什么?

【问题讨论】:

  • 请您提供更多详细信息,否则我们只是猜测。您在 cmd 行上运行的是哪一行?你想在 q 中运行哪条线?
  • @terrylynch:查看更新
  • 在运行 jar 时不应该使用 -jar 标志吗?除此之外,尝试将命令放入脚本中并通过system 调用运行脚本
  • @user2393012 如果指定包,则不需要使用-jar 标志。使用脚本方法时,我是否仍要转义反斜杠?
  • 不需要反斜杠,如果您将命令放在脚本中并确保它自己从命令行运行,那么只需调用脚本,例如system"/home/me/script.sh"

标签: cmd system kdb


【解决方案1】:

通过编写一个执行cmd 中完整的java 命令的小型Java 程序解决了这个问题:

q -> runs small Java program 1 -> runs cmd commands to open the dependent Java class

我认为问题在于 jar 有外部依赖项,也需要加载,尽管 Eclipse 说它将它们与 jar 一起“打包”。

我认为像Fat Jar这样的插件是创建独立可执行jar的解决方案。

但我并不关心创建一个完全独立的 jar。这个解决方案效果很好。这是一种解决方法,但 q 中的最终代码现在更简洁更短。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 2017-12-21
    • 1970-01-01
    • 2015-08-22
    • 2015-06-17
    • 2011-04-08
    • 2012-05-11
    相关资源
    最近更新 更多