問題タブ [platform-independence]

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 投票する
3 に答える
81708 参照

java - プラットフォームに依存しない方法で環境変数をJVMに渡す

Windows VistaマシンのJBossで実行されるJ2EEアプリケーションを開発していますが、アプリケーションはLinuxマシンで終了します。プラットフォームに依存しない方法で環境変数の値を渡す方法はありますか?

プラットフォームに依存する方法は次のようになると思います(ただし、よくわかりません)。

そこから、(Javaで)値にアクセスします。

- あれは正しいですか?

のJavadocはSystem.getenv(String name)、メソッドがプラットフォームに依存していることを示唆しているようですが、それについてははっきりしていません。変数をJVMに完全に渡すことをスキップしgetenv()て、OSを使用して環境変数の値を設定した後に使用できますか?

0 投票する
9 に答える
24786 参照

operating-system - プログラムはどのように実行されますか?オペレーティングシステムはどこで機能しますか?

プログラムは、ある言語からASM->マシンコード(直接実行可能)にコンパイルされます。これがプラットフォームに依存すると言われる場合、形成されたバイナリは、x86、x86-64などの同じ命令セットアーキテクチャを備えたCPUでのみ(正しく)実行されることを意味します。ISAの違いにより、他のプロセスで(誤って)実行される場合と(まったく)実行されない場合があります。右?

さて、バイナリの概念は私を混乱させています。すべては「機械語コード」と「CPU」に関するものです。OSはどこで機能しますか?つまり、コンパイルされたバイナリには、メモリにロードされたときにCPUへの直接命令が含まれています。&CPUは一度に1つの命令を実行します。プロセス管理のリンクテキストを除いて、オペレーティングシステムの役割はどこにもわかりませんでした。オペレーティングシステムに関係なく、同じISAのCPUで実行されている必要があります。右?

しかし、そうではありません。Windowsマシンでx86へのコードをビルドした場合。Macx86マシンまたはLinuxx86マシンでは動作しません。

ここに何かが足りません。私の混乱を解消してください。

0 投票する
2 に答える
148 参照

java - ファイルの種類ごとに外部アプリケーション/ヘルパーを起動するプラットフォームに依存しない方法は?

たとえば、私が取り組んでいる 1 つのアプリケーションでは、PDF ファイルをデータベースに保存してから、それらを取り出して表示することができます。そこに、Runtime.exec を使用して「cmd /c start」と PDF ファイル名を実行する呼び出しがあります。Windowsに最適です。Solaris と Mac でもソフトウェアを実行しているため、プラットフォームに依存しない方法 (さまざまな OS の代替方法で OS 検出を回避しようとする) を見つけたいと思います。

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

c++ - フレームワークを変更せずにプラットフォームに依存しない並列化?

タイトルが誤解を招いていないことを願っています。

私の問題は次のとおりです。現在、レイトレーサーを高速化しようとしていますが、これはグラフィックカードの助けを借りて行われています。これにより遅くなったにもかかわらず、正常に動作します。:)

これは、グラフィックス カード (私の「トレース サーバー」) で一度にジオメトリ全体で 1 つのレイをトレースし、結果を取得するという事実が原因です。これは非常に遅いため、いくつかのレイを収集して計算する必要があります。結果を一緒にフェッチして、これを高速化します。

次の問題は、この並列化について何も知らないか、ほとんど知らないはずの周囲のフレームワークを書き直すことが許可されていないことです。

そこで、私のアプローチは次のとおりです。複数のスレッドを使用することを考えました。それぞれが光線を取得し、「トレース サーバー」に交差を計算するように要求します。次に、グラフィックス カードの交点を計算して結果を効率的に戻すのに十分な光線が収集されるまで、スレッドは停止します。これは、結果がフェッチされるまで各スレッドが待機することを意味します。

すでにいくつかの計画があることがわかりますが、次のことはわかりません。

  • プラットフォームに依存しないようにするには、どのスレッド フレームワークを使用する必要がありますか?
  • 固定サイズのスレッドプールを使用するか、必要に応じて作成する必要がありますか?
  • 特定のスレッド ライブラリは、少なくとも 1000 の待機中のスレッドを処理できますか (フェッチを効率的に行うために収集する必要がある数になるため)。

しかし、これを 1 つのスレッドで行うことも想像できます。

  1. その負荷 (新しいレイ) を「トレーシング サーバー」にダンプし、次の負荷をフェッチします。
  2. 結果を取得するには十分です。
  3. 次に、スレッドは結果を 1 つずつ取得し、すべての結果が処理されるまでさらに計算を行い、すべてのレイが完了するまでステップ 1 に戻ります。

また、これを並列化する方法についてより良いアイデアがあれば教えてください。

よろしく、

誰でもない

PS この情報が必要な場合: 私が使用したい 2 つのプラットフォームは、Linux と Windows です。

0 投票する
3 に答える
754 参照

java - Javaでのシステムに依存しないマシンのシャットダウン

重複の可能性:
Javaを使用してコンピューターをシャットダウンする

特定の時間または特定の日時にコンピュータをシャットダウンする個人用プログラムを作成しています。ただし、私は複数のオペレーティングシステムを実行しており、1つの単純なJavaプログラムでこれを実行したいと考えています。外部ライブラリを使用せずに、Javaでシステムに依存しないマシンシャットダウン要求を送信する方法はありますか?Windowsで使用できることは知っていますjava.awt.Desktop.getDesktop().browse(new URI("shutdown /s"));が、繰り返しになりますが、システムに依存しないようにしたいです。

0 投票する
2 に答える
55835 参照

java - 現在のプラットフォームでjava.library.pathがどの変数にマップされているかを知ることはできますか?

これまで、java.library.pathプロパティについて次のことを学びました。

  • Javaクラスではなく、ネイティブライブラリをロードするときに使用されます
  • デフォルト値は、オペレーティングシステムによって異なります。
    • Windowsでは、PATHにマップされます
    • Linuxでは、LD_LIBRARY_PATHにマップされます
    • OS Xでは、DYLD_LIBRARY_PATHにマップされます

(上記のいずれかを誤解した場合は訂正してください)

私の動機:

Javaアプリケーションを呼び出すために設定したフレームワークからJavaアプリケーションに表示されるjava.library.pathの値を変更したいと思います。これを行うには、java.library.pathプロパティを直接設定するのではなく、マップ先のシステムパス変数を変更します。醜いOS固有のコードがない、または可能であればエッジケースを除外する、これを行うためのクリーンな方法が必要です。

私の質問:

ローカルJava実装に、どの環境変数java.library.pathがマップされるかを尋ねる方法はありますか?

次に、シェルスクリプトで、次の行に沿って何かを書くことができます。

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

c++ - プラットフォームに依存しない遅延タイマー

問題

私は最初にこの質問を投稿しましたが、これは明らかに私の顧客の仕様を満たしていないものでした。したがって、私は問題を再定義しています:

問題をもう少し理解するには、元の投稿のタイミング図を使用できます。遅延器はプラットフォームに依存しない必要があります。正確に言うと、ジョブ スケジューラを実行していますが、現在の遅延器はそれと互換性がないようです。私が立ち往生しているのは、遅延器の「独立」ビットです。Probe(サンプリング時間のプローブ) とVariable Integer Delayブロックを使用して、SIMULINK の遅延器を既にノックアウトしています。しかし、承認段階で、スケジューラーがそのような構成に準拠しておらず、C/C++ アプリケーションで実行される while ループのような、より本質的で基本的なものにする必要があることに気付きました。

初期解

私が考える解決策は次のとおりです。

  1. と呼ばれるグローバルで静的なタイム スライス変数を定義しますtslc。基本的に、これはスケジューラーが実行される頻度です。単位は秒かもしれません

  2. 次の本体を持つ関数を定義します。

    /li>

ユーザーは関数コーディングのスキルが低いことを許してください。しかし、私は単に解決策を考え出そうとしました。ここでの提案で人々が私を少し助けてくれたら本当にありがたいです!

コンピューティング プラットフォーム Windows 2000 サーバー

ターゲット コンピューティング プラットフォーム 組み込みシステム カード - PCI スロットの 1 つに接続される最新のグラフィックス カードまたはサウンド カードに似たもの。テストベッドでテストを行い、最終的にその組み込みシステム カードにソリューションを実装します。

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

python - Python でファイルをすばやく見つけるための OS に依存しない方法

Python で、ディレクトリ (サブディレクトリを含む) 内のファイルを高速に検索するにはどうすればよいですか?

ここでの標準的な回答では、 Linux で作業している場合、os.walk()単に呼び出すのに比べて遅い を使用しています。find /path -iname "*string*"

より良い速度を達成するためのプラットフォームに依存しないクリーンな方法はありますか?