如何将参数传递给JXCore本机应用程序?

时间:2014-11-07 10:22:47

标签: jxcore

我创建了一个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的文档。我无法找到如何做到这一点。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

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

  

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运行时相同的索引处(非编译)。