3

我创建了一个 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.

我浏览了有关包装的文档和一些相同的博客文章。我无法找到如何做到这一点。任何的想法?

谢谢!

4

1 回答 1

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' ]arg1和位于与使用(非编译)arg2运行时相同的索引处。jx

于 2014-11-07T18:13:02.763 回答