問題タブ [com4j]

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.

0 投票する
0 に答える
646 参照

java - COM4J を使用して Excel ファイルを作成する

Excel のインスタンスを起動してデータをエクスポートしようとすると、ヌル ポインター例外が発生します。COM4J.jar の最新バージョンを netbeans プロジェクトに追加しようとしました。問題が何であるかを見つける方法についての提案をいただければ幸いです。

この線で途切れそうですが、

excelApp = Microsoft.Excel.ClassFactory.createApplication();

そして、以下を出力します。

0 投票する
1 に答える
466 参照

java - DirectByteBuffer、Cleaner、Finalizer、Variant インスタンスで Com4j がリークする

COM 経由で 1 つの dll ライブラリを操作する Java プロジェクトがあります。私は Windows 7 を使用しており、32 ビット Java 1.6 を使用しています。2012/04/26 リリースの com4j をブリッジとして使用しています。できます。

問題は、深刻なメモリ リークがあり、プログラムの操作がほとんど不可能になっていることです。

いくつかの COM イベントを購読しています。次のイベントが到着すると、使用されるヒープ メモリの増加が観察されますが、GC はそれを減らすのに役立ちません。COM4J.cleanUp() を使用すると、メモリ使用量の増加は止まりますが、イベントは到着しなくなります。プログラムで使用されるヒープ メモリは非常に高速に増加しますが、実際には自分自身のオブジェクトが割り当てられていません。

VisualVM のスナップショットの違い: http://postimg.org/image/cxg77ft8j/

VisualVM でのヒープ メモリの増加: http://postimg.org/image/m52g63b51/

問題は DirectByteBuffer、Cleaner、Variant、および Finalizer インスタンスにあるようです。私は自分でそれらを作成しません。これは com4j 内の何かです。

助言がありますか?

0 投票する
1 に答える
296 参照

java - めちゃめちゃなファイル IO

私はどうやらそれをやったようで、どうすればいいのかわかりません。またはなぜ...または正確にはどちらか。

セットアップは次のとおりです。

OpenDSSEngine.dll と、このプロセスによって生成された com4j Java インターフェイスを使用して、OpenDSS シミュレーションを実行しています: https://com4j.java.net/tutorial.html

OpenDSS サーバーを別のマシンで実行できるようにする必要があったため、Java でクライアント/サーバー (テキストとオブジェクトの転送) を実装しましたが、すべて問題ありませんでした...

今、私は「ワークステーションモード」を実行できるようにしたいと考えていました(アプリケーションでローカルおよび直接comを呼び出します)。さらに、私はそれを少しスレッド化したかった. そこで、ランナー (関数を呼び出すスレッド) とラッパー (結果の処理を含むランナーからの関数呼び出しを処理する) を作成しました。

ラッパーには、クライアント側 (ソケット通信) またはサーバー側 (ワークステーション モード、com オブジェクト) の実装となる抽象クラスの実装が含まれています。

そして今問題

大規模な編集

さらにテストを重ねた結果、正確な問題がどこにあるのかをより正確に説明できるようになりました。

COM インターフェイスを開始すると、ファイル IO が壊れます。作業ディレクトリが何らかの形で変更されました。悪い意味で。すべての Java 関数を呼び出すと、あるべき作業ディレクトリが判明します。ここでJavaを実行しました。

しかし、何らかの理由で作業ディレクトリは、dll がデータを格納する場所です。

ファイルの1つをそこに置き、そこから読み取ろうとすることで、これを確認しました(変更、最初の文字を参照)。

コード:

結果:

例外の 76 行目は、dss の初期化後のものです。それはあなたのためのJavaです;)

ここに、私が使用したすべての com および opendss ファイルへのリンクがあります。

これを com4j の開発者と opendss の開発者に提出します。

もちろん、それが com4j の問題なのか、opendss エンジンの問題なのか、誰かが教えてくれたら嬉しいです。そして、これを修正する簡単な方法があるかどうか.

0 投票する
0 に答える
185 参照

java - OTAClient と com4j を使用して Java アプリケーションから QC/ALM Server 上のプロジェクトに接続しているときに、JAVA SE が動作を停止しました

OTAClient と com4j を使用して Java を QC に接続してみました。サーバーに接続され、ログインも成功しました。しかし、特定のプロジェクトおよびドメインへの接続に関しては、しばらく時間がかかり、動作してから「JAVA(TM) SE Has Stopped Working」と表示されます。

詳細を確認すると、OTAClient.dll に問題があるとのことです。これを克服する解決策を教えてください。

0 投票する
1 に答える
940 参照

java - JAVA の OTAClient を介して QC のテスト セットにテスト オブジェクトを追加します。

新しく作成されたテスト セットに追加されるテスト ID のリストがあります。テストの詳細 [またはテスト オブジェクト] を取得するために、次のコードを使用しています。

インターフェイス ITestSet を使用して、テスト セット オブジェクトを取得することもできます。テストセットにテストオブジェクトを追加する方法に行き詰まっています。次のコードで試してみましたが、例外はスローされませんが、それでもあまり役に立ちません:

誰でも簡単なヘルプを提供できますか? JAVA - com4j と OTAClient jar を使用しました。前もって感謝します