【问题标题】:How to pass arguments to a JXCore native application?如何将参数传递给 JXCore 本机应用程序?
【发布时间】:2015-01-04 02:43:50
【问题描述】:

我创建了一个 NodeJS 应用程序,并使用带有 -native 标志的 JXCore 来生成一个独立的 .exe。 现在我正在尝试运行应用程序并传递一些命令行参数。

在 NodeJS 应用程序上运行良好,但在 exe 上运行不正常:

c:\project> node MyApp.js -arg1 bla
OK.

工作正常。但是

c:\project> jx package MyApp.js MyApp -native
c:\project> MyApp.exe -arg1 bla
Error, please provide argument arg1.

我浏览了有关 packaging 和一些 blog posts 的文档,大致相同。我无法找到如何做到这一点。有什么想法吗?

谢谢!

【问题讨论】:

  • 我刚刚尝试不使用 -native 标志来生成 jx 包。命令行参数正确传递。

标签: jxcore


【解决方案1】:

完全相同,但编译后的应用程序存在细微差别。对于下面的命令行;

jx myapp.js arg1 arg2

过程参数是;

process.argv == [ 'jx' , 'myapp.js', 'arg1', 'arg2' ]

当你将 myapp.js 编译成 myapp.exe 时,你只需调用;

myapp.exe arg1 arg2

因此流程参数将是;

process.argv == [ 'myapp.exe', 'arg1', 'arg2' ]

您可以使用一个技巧以便在已编译或未编译的应用程序之间轻松切换;

if(process.IsEmbedded) process.argv.unshift(process.argv[0]);

因此,对于已编译的应用程序,结果将是:[ 'myapp.exe', 'myapp.exe', 'arg1', 'arg2' ],其中 arg1arg2 位于与使用 jx(非编译)运行时相同的索引处。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 2012-12-24
    • 1970-01-01
    • 2020-04-29
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    相关资源
    最近更新 更多