質問

Narwhalでは、JNAを使用して作成しています libc のような呼び出し getcwdchdir. 。 JNAインターフェイスに関する限られた知識でしか使用できませんでした。それは、RhinoのJavaScriptに関連しており、プリミティブのみを扱っています。チャーバッファーを割り当てる方法を知る必要があります。 getcwd, 、そのバッファーからJavaScript文字列を取得し、おそらくバッファーを扱います。 finally 句。

これが私たちがどのようにつかむかです libc インターフェース:

http://github.com/280north/narwhal/blob/34ac15261fa4acdef3867256e97d7aabb94766e0/engines/rhino/lib/fs-base.js#l32-42

これが方法です chdir 実装されています:

http://github.com/280north/narwhal/blob/34ac15261fa4acdef3867256e97d7aabb94766e0/engines/lhino/lib/fs-base.js#l438-44444444

これが解決策が必要なところです getcwd

http://github.com/280north/narwhal/blob/34ac15261fa4acdef3867256e97d7aabb94766e0/engines/rhino/lib/fs-base.js#l416-419

RubyのソリューションまたはJNA用のその他の埋め込み言語が役立ちます。

役に立ちましたか?

解決

Nio.BufferまたはJNA.Pointerを使用して、出力バッファーを渡すことができます。

invokeString(new jna.Memory(4097), 4097)

getCWDは入力バッファーにchar*を返します。

より長いパスをサポートするには、オプションの長さを取ることができます

Javaでは、新しいファイル( "。")。getabsolutepath()は現在のパスを取得できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top