問題タブ [jamvm]
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.
classpath - GNU クラスパスと JamVM のビルド方法
GNU Classpath 0.98 と JamVM 1.5.2 をビルドしようとしています。
JamVM の readme に従って、「構成」を行いました。作る; jamVM に make install するとうまくいきました。
次に、jamvm と Sun javac をパスに追加しました。
次に、GNU クラスパスを使用して、次のようにしました。
このエラーが発生しました:
javac が失敗しました (config.log を参照)
でconfig.log
、javac が VMStackWalker (jamvm 固有) を見つけられないことがわかりました。jamvm クラスを CLASSPATH に追加したところ、次のエラーが発生しました。
Java VM jamvm が失敗しました (config.log を参照)
でconfig.log
、jamvm が を見つけられないことがわかりますjava.lang.Class
。
どうしたの?!
java - Java/awt に特定のツールキット (qt) を強制的に使用させる方法は?
qt のみを搭載した組み込み Linux デバイスで作業しています。何らかの理由で、Java は gnu.java.awt.peer.gtk.GtkToolkit を使用することにしました。代わりに gnu.java.awt.peer.qt.QtToolkit を強制的に使用する (またはデフォルトの動作を変更する) にはどうすればよいですか?
qt - jamvm1.5 + classpath-0.96 + qt4.3 QPixmap:GUIスレッドの外部でピックスマップを使用することは安全ではありません
私はQtを初めて使用しますが、対処方法がわかりません。
c - C/Posix に関する質問
小さいながらも強力な Java 仮想マシンである JamVM に 2 週間取り組んできました。
現在、メモリがどのように実装されているかを把握しようとしていますが、2 つの C の愚かな問題に悩まされています。
char *mem = (char*)mmap(0, args->max_heap, PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON, -1, 0);
--> -1 パラメータはファイル記述子を表しますが、これはどういう意味ですか? (私はすでに mmap man を読んだことがありますが、見つけられませんでした。おそらく私は誤解していました...)。
heapbase = (char*)(((uintptr_t)mem+HEADER_SIZE+OBJECT_GRAIN-1&)~(OBJECT_GRAIN-1)) HEADER_SIZE;
--> 1& とは? C仕様にはありません...
ありがとう、
ヤン
c - JamVM を一時停止して再起動しますか?
私は人気のある小さな Java VM である JamVM に取り組んでおり、それを停止 (すべてのスレッドを一時停止) し、VM 内で関数 (C 関数) を実行してから、すべてのスレッドを再開したいと考えています。
シグナルを処理 (Ctrl-C) して関数を実行しようとしましたが、VM が受信するすべてのシグナルが実行中の Java プログラムに送信されるため、うまくいきませんでした...
VM を停止してから再起動する方法はありますか? (信号の有無は問いません)
zlib - Buildroot - jamvm 1.5.1 のビルド中にエラーが発生しました
Buildroot 環境をビルドしようとすると、(別の) ビルド エラーが発生します。この質問は、以前の(解決済みの)質問hereおよびhereに関連しています(ただし、依存していません) 。
カーネルと JamVM に Bluetooth サポートを含めようとしていますが、Jamvm を含む Buildroot 環境を既に正常に構築しましたが、何らかの理由でビルドが失敗しています。
ビルド プロセスが次の段階に達したとき:
jamvm 1.5.1 構成
最終的に次のエラーで失敗します。
ecj をチェックしています... (キャッシュされています) javac -Xlint:unchecked,cast,divzero,empty,finally,overrides
-lpthread で pthread_self をチェックしています...はい
-lmでfmodをチェックしています...はい
-ldl で dlopen をチェックしています... (キャッシュ) はい
-lzでインフレをチェックしています...はい
ANSI C ヘッダー ファイルをチェックしています... (キャッシュ) はい
sys/time.h のチェック... (キャッシュ) はい
unistd.h のチェック... (キャッシュ) はい
endian.h のユーザビリティをチェックしています...はい
endian.h の存在を確認しています...はい
endian.h をチェックしています...はい
sys/param.h のチェック... (キャッシュ) はい
locale.h のチェック... (キャッシュ) はい
zlib.h のチェック... (キャッシュ) いいえ
構成: エラー: zlib.h がありません
出力場所 /output/build/zlib-1.2.3 を確認したところ、ファイル zlib.h が表示されるので、なぜそれが見つからないと主張するのか不思議です。また、zlib に依存するように jamvm.mk を変更し、make を再試行しました (「make clean」を実行していないことに注意してください)。
誰にもアイデアはありますか?ビルド プロセスの何かである必要があること以外に、jamvm がビルドされない理由がわかりません。
drools - Drools:ルールのコンパイル(またはコンパイルされたルールのロード)は、JamVMのあいまいな例外で失敗します
私は、その機能の1つとして、ロボットがルールベースのシステムを使用できるようにするフレームワークを開発しています。私たちはRBSとしてJessから始め、今ではOpenJDK 6で実行されている開発マシンで動作するdrools(Drools 5.2.0 finalを使用)を実装したいと考えていました。
私たちのロボットコントローラーは、以前は1.4.3であったARM LinuxとJamVMを実行しますが、droolsに必要なクラスが欠落しているため、最近1.5.4をコンパイルしました。失敗した後、コントローラー用にコンパイルしたときと同じ構成を使用して仮想マシンにJamVMをインストールしましたが、同じ例外で失敗しました。
少し調べてみると、Drools + JamVMのバグレポートがありますが、これは一般的に機能することも意味します。
次のコードを使用してプリコンパイルされたルールでフレームワークを実行する場合...
...この例外が発生しました:
...これはOpenJDKで動作します。奇妙なことに、問題のリストJavaDialectRuntimeData
はを介して取得Collections.emptyList()
され、二度と変更されることはありません(または、日食が示唆しています...)。
このコードを使用してベア.drl
ファイルで実行する場合:
...ルールコンパイラから次の(予期しない)例外が発生します。
繰り返しになりますが、ルールのコンパイルはOpenJDKで問題なく機能しました。Janinoを使用しており、クラスパスで適切に参照されています(実行時に使用されるクラスパスは、Mavenビルドによって作成されるため、drools / janino /その他によって参照されるすべてのjarが含まれます)
ここで何が起こっているのか、DroolsをJamVMで動作させる方法を知っている人はいますか?
java - java.io.IOException:WakeonLanでアクセスが拒否されました
Wake On Lanを実装するために、このコードを作成しました。
しかし、私はこれを取得します:
他のアドレスに変更してもこのエラーが発生しないため、問題はブロードキャストアドレスのようです。どうすればそれを回避できますか?私はJamVMとGNUClasspathでlinuxbusyboxを使用しています。
java - main がパッケージ内にある場合の JamVM NoClassDefFoundError
HelloWorld をパッケージに入れようとすると、NoClassDefFoundError、クラス ファイルの名前が間違っています。Jamvm v1.5.2 を使用しています。HelloWorld がパッケージに含まれていないときに実行できるため、クラスパスが正しく設定されていると想定しています... jamvm を使用してパッケージ内でメインを実行するにはどうすればよいですか? これを機能させるには、どのパスを設定する必要がありますか? ありがとう。
Hello.java:
root@overo:~/default# jamvm こんにちは
、gumstix です。
Hello.java:
root@overo:~/test# jamvm Hello
スレッド「メイン」での例外 java.lang.NoClassDefFoundError: Hello
原因: java.lang.NoClassDefFoundError: クラス ファイルの名前が間違っています
java - Gumstix で JamVm がアプリケーション (jpcap を使用する) を実行していない
ここの初心者なので、ばかげた/明白なことを尋ねることを事前にお詫びします。Gumstix overo ボード (Linux カーネル 2.6.34) で Java アプリケーションを実行しようとしています。これまでのところ、JamVm (jvm)、jikes コンパイラ、およびクラスパス ライブラリをインストールしました (このチュートリアルの手順に従って)。HelloWorld プログラムを実行しましたが、問題ないようでした。
「jpcap」ライブラリを使用する別のアプリケーション (「MyApp」など) を実行しようとすると、jvm から次のようなエラーが表示 されます。 (ファイル 'libjpcap.so' として) gnu.classpath.boot.library.path および java.library.path 内。. .
このアプリケーションは、Netbeans 7.1 を使用してコンパイルされました。次のような構造の dist フォルダーが生成されました。
dist: |-- MyApp.jar |-- Readme |-- lib (フォルダ) |---|-- jpcap.jar |---|-- swing-layout-1.0.4.jar
readme によると、このアプリケーションをデプロイするには、dist フォルダーに移動して「java -jar "MyApp.jar"」と入力する必要があります。これを行うと ('jamvm -jar MyApp.jar')、上記のエラーが発生します。
私の gumstix ボードには libpcap-1.1.1-r1.6 がインストールされています。(ボードに /usr/lib/libpcap.so.1 が見つかりました。)
誰が何が問題なのか知っていますか?アドバイスをいただければ幸いです。
Ps: この質問は、ほんの数分前に gumstix-users リストに投稿しました。返信の可能性を高めるために、ここにも投稿しています。ここにいるみんなが大丈夫であることを願っています。