問題タブ [luajava]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - LuaJava:JavaからLuaオブジェクトのメソッドを呼び出しますか?
LuaJava 経由で Lua を呼び出す Java/Scala コードがあります。J/S パイプラインから Lua パイプラインまでのオブジェクト階層の一部を模倣したいと考えています。基本的に、言語にコンパニオン オブジェクトを持たせるためです。つまり、J/S で「Cracker」を作成すると、Lua で「Cracker」オブジェクトを作成します。次に、J/SI で「eatCracker」のようなメソッドを呼び出すと、Lua コンパニオン オブジェクトの「eatCracker」も呼び出すことができます。
問題は、Lua オブジェクトを作成して保存する方法と、特定のオブジェクトでメソッドを呼び出す方法がわからないことです。
誰でも助けることができますか?
lua - luajava で整数型を強制する
LuaJavaを使用して整数型を強制する方法はありますか? LuaJ 3.0 beta 1(luaj-jse-3.0-beta1.jar)
で、 のインスタンスを作成しようとしていますjava.awt.Color
。Java API のコンストラクター ( JavaAPI )が利用可能であることを考えると、これがそのような問題になるとは思わないでしょう。整数をコンストラクターに強制的に入れることに興味がある理由は、利用可能なコンストラクターがまたはColor
のいずれかの 3 つまたは 4 つの引数を取るためです。Lua の数値型はであるため、LuaJ (または LuaJava) はコンストラクターのバージョンを呼び出します。int
float
double
float
最初はこれで問題ないと思っていたのですが、使ってみたらエラーメッセージが届いていることに気づきましたColor
。値がコンストラクターに適切に渡されておらず、Color
オブジェクトは本質的に破損しており、識別可能なエラーはありませんでした (何もクラッシュせず、表示されませんでした)。
簡単な例を次に示します。
r = 1.0
このコンストラクタにg = 0.2
,を渡しb = 0.2
てから print するとj_color
、
出力で。実際、私は好きなものをr
とであるg
限りb = 0
問題なく使用できますが、それ以外の場合は、痛みや苦しみが生じます。
他の誰かがこの問題に遭遇したかどうか知りたいです。解決しない場合は、LuaJ プロジェクトの PI に連絡し、報告します。
補足として、カスタムメイドの Java 関数を使用してColor
. この問題が存在すること、および使用するコンストラクターを指定する方法があるかどうか、またはLuaJavaにdoubleではなく整数を使用するように明示的に指示する方法があるかどうかについて、私はより懸念しています。
アップデート
また、four-float コンストラクターを使用しようとしましたが、同じ問題が発生します。次のいずれかの値を渡すとalpha=0, 0.5, 1
、コンストラクターは適切に機能します。それ以外の場合は、上記の結果が得られます。
java - Lua の Java Hashmap を介した Foreach ループ
だから私はLuaの初心者で、JavaコードでLuaJavaを実行していますが、Luaのハッシュマップでforeachループを実行する方法を見つけようとして立ち往生しています。
私のJavaコードには次のものがあります:
ジャワ
次に、lua スクリプトを取得し、EntityManager のハッシュマップ内のすべてのエンティティを反復処理する方法を見つけようとしています。
ルア
関数などを機能させるために設定する必要があるものはほとんどすべて揃っていますが、Java の foreach ループに相当する Lua を作成して、Lua スクリプトで Java ハッシュマップを反復処理する方法がわかりません。
また、Lua でオブジェクトのタイプをチェックして、それが私の Java クラスの 1 つのインスタンスであるかどうかを確認する方法を知りたいです。たとえば、Java でオブジェクトがオブジェクト型かどうかを確認するには、次のようにします。
ああ、Lua スクリプトに渡す Java オブジェクトがその Java クラス タイプを保持しているかどうかは完全にはわかりません。また、そのようなことを行う方法もわかりません。
ちなみに、Kepler ProjectのLuaJavaを使っています。
ありがとう。
java - LuaJava のインストール
Mac バージョン 10.9 を使用しており、LuaJava を構築しようとしています。Lua 5.0 を問題なくビルドしましたが、このチュートリアルを使用すると、次のエラーが発生します。
makeを実行するとターミナルから。jniヘッダーを追跡しましたが、それをどうするか/どこに置くかがわからないので、それを見つけます。
java - LuaJava を使用した EnumMap (nil 値の呼び出しを試行)
タイトルが示すように、LuaJava と EnumMap に問題があります。私は RPG ライブラリを実行しようとしているので、いくつかの属性とそれらのリストを持つキャラクターがあります。以下のコードでは、重要なことだけを報告します。
AbstractAttribute を拡張する ConcreteAttribute というクラスがあります。これには、String と 2 つの int を持つコンストラクターがあります。
次に、RPG ゲームでの統計を表す StatType という Enum があります。
私は PlayableCharacter と呼ばれるクラスも持っています (重要なことだけを報告します):
Map の「put」メソッド。
新しいキャラクターを作成するために、私は現在これを行っています (「Eroe」は PlayableCharacter を拡張します):
正常に動作しますが、多くの ConcreteAttribute と多くの Character がある場合、これが最善の解決策ではないと思います。だから私は、このようにLuaを使ってキャラクターの「具体的な」インスタンスを作成することを考えていました(小さな例):
しかし、次のエラーが表示されます: PANIC: Lua API の呼び出しで保護されていないエラーが発生しました (nil 値を呼び出そうとしました)。問題は最後の行にありますが、私は Lua に本当に慣れていないので、Lua が EnumMap を処理できるかどうかさえわかりません。
これに対する解決策はありますか?
皆さんありがとう、そして私の下手な英語でごめんなさい^^
編集: コードを編集しましたが、エラーが見つかりました
java - Luaj で Lua-Filesystem と Lua-Penlight をロードする方法
Luaj 3.0 ライブラリを使用するプログラムがあり、含めたい lua スクリプトがいくつか見つかりましたが、それらはすべて lua ファイル システムとペンライトを必要とし、それらのライブラリを使用しようとするとエラーが発生します。
ルアジでそれらをどのように利用するべきか誰か知っていますか?
編集:もう少し情報が役立つかもしれません:open-jdk8 Luaj、lua-filesystem、およびlua-penlightがインストールされたArchlinux 64ビットシステムがあります。プロジェクトに含めたいLua Java Utilsというライブラリのセットを見つけました。ただし、常に次のエラーが発生します。
参考までに24行目:
それにはペンライト ライブラリが必要で、これには lua ファイルシステムが必要になるため、2 つをインストールしました。を実行しようとしても、Lua ファイルシステムがロードされていないことがテストでわかりましたlfs.currentdir()
。試しglobals.load("local lfs = require \"lfs\"").call();
ましたが、エラーも発生しました。
私の Lfs ライブラリは にあり/usr/lib/lua/5.2/lfs.so
、ペンライトは にあり/usr/share/lua/5.2/pl
ます。
java - LuaJava - Lua API の呼び出しで保護されていないエラーが発生しました
LuaJavaで動作する単純な関数を取得しようとしています(2つの数値を追加します)。私は Lua の経験がほとんどなく、LuaJava の詳細なドキュメントを見つけることができなかったため、これが難しいと感じています。現在、lua から Java コンソールに出力できますが、それ以上のことはできません。
いくつかの方法を実装しようとしましたが、毎回同じエラーが発生します:
これは私が使用しているコードです:
そしてLuaファイル:
私のIDEはEclipseです。助けてくれてありがとう。