Javaバージョン間でガジェットを切り替える

こんにちは、ハラジテリ!



今日は、仮想職場の微調整のトピックに触れたいと思います。 このノートに高い期待を置かないようお願いします。それを読んだ後でも、コードはそれ自体では書かれませんが、開発中の少しのルーチンを克服するでしょう。 さらに、Windows用のガジェットを作成してみてください。



最後から始めて、完成した結果を見てみましょう。



画像



私はポイントに渡します。 Javaプラットフォーム用に開発する場合、1つのバージョンに限定されません。 これには多くの理由があります。ターゲットハードウェアプラットフォーム、レガシーの存在など。そして、この点に関して、環境変数JAVA_HOME / JRE_HOME / PATHを修正する必要があることがよくあります。



したがって、これらのアクションを便利に自動化するスイッチを実装するという考えです。 しかし、便利なようにアイデアを実現する方法は? 長い間考えられていませんでしたが、デスクトップ上の天気ウィジェットに外観が落ちた直後に、ターゲットアプリケーションの形式が明確になりました。 したがって、これはWindowsサイドバーガジェットになります。



せっかちな人のために、試してみましょう:

1)ユーザー環境変数で、JAVA_HOMEおよびJRE_HOMEを作成する必要があります

2)PATH add%JAVA_HOME%\ bin

3)ガジェットをダウンロードしてインストールします-github.com/ice-pro/JavaEnvSwitchGadget/blob/master/JavaEnvSwitchGadget.gadget

4)しかし、すべてが正常に機能するためには、別の非常に非標準的な手順を実行する必要がありました:java.exeは既にwindows / system32にあり、このフォルダーの優先順位はPATHで指定されているものよりも高くなっています。 したがって、ファイルの名前をsystem32から「_java.exe」に変更する必要がありました



すべて、インストールされたJDK / JREへのパスを設定して使用できます。



そして今、詳細に興味がある人のために。

ガジェットとは何ですか? Windowsのガジェットは、一部のデータを視覚化したり、フィードバックを実行したりできるアプリケーションです。



ガジェット開発は、Webテクノロジーの標準セット-HTML / CSS / JSに基づいています。 もちろん、C#を使用することもできます(たとえば、ここでこのテンプレートを使用して-visualstudiogallery.msdn.microsoft.com/bf347eb6-99bd-4c99-89d0-6ca3fe1eb54e )が、この記事では単純なことを複雑にせず、ネイティブパスを選択します。



ガジェットの基本的なフレームワークは、2つのファイルで構成されています-ビジュアルパーツとxml記述子を持つhtmlページ。

記述子タグの詳細な説明は、 msdn.microsoft.com / en-us / library / windows / desktop / ff486356 (v = vs. 85).aspxにあります。

ガジェットのハンドル(そこに目立ったものは何もないので、コードは提供しません)、残りのソースコードはgithub.com/ice-pro/JavaEnvSwitchGadgetから入手できます



それでは、ガジェットのメインページに移りましょう。 明確にしたい点がいくつかあります。

-なぜなら ガジェットにはもう1つの追加ページが含まれます-設定、それからこの方法で明示的に指定する必要があります(私にとってこれはXMLではなく必要だったという事実は少し奇妙でした):



document.onreadystatechange = function() { if(document.readyState == 'complete') { System.Gadget.settingsUI = 'settings.html'; } }
      
      





-セットアップを使用するには、単純なAPIが使用されます。

 var val = System.Gadget.Settings.read(key);
      
      





-そして、最も興味深いのは環境変数を扱うことです:

 var shell = new ActiveXObject('WScript.Shell'); var vars = shell.Environment('User'); vars('JAVA_HOME') = jdk; vars('JRE_HOME') = jre;
      
      







パラメータページには、焦点を当てたい場所が1つだけあります。これらのパラメータを保存します。



 System.Gadget.onSettingsClosing = applySettings; //          function applySettings(event) { if (event.closeAction == event.Action.commit) { // ... } }
      
      







以上で、実装の準備は完了です。 これで、組み立てを開始できます。 完成したガジェットはzipアーカイブであり、拡張子は.gadgetのみです。



アセンブリ用に、小さなコマンドスクリプトを作成しました。 次のようになります。



 del JavaEnvSwitchGadget.gadget "C:\Program Files\7-Zip\7z.exe" a -tzip -x!.idea -x!.git -x!_stuff -x!build.cmd -r JavaEnvSwitchGadget *.* move JavaEnvSwitchGadget.zip JavaEnvSwitchGadget.gadget pause
      
      







デバッグについて少し説明します( msdn.microsoft.com/en-us/library/windows/desktop/bb456467(v = vs.85).aspx)。



まず悪い知らせです。サイドバーには実装がないため、アラートの助けを借りてすぐにデバッグすることはできません(回避策-MsgBoxを使用してください)。



しかし、正しくやってみましょう。



1)まず、Internet Explorerを構成し、[詳細設定]セクションで、[スクリプトのデバッグを無効にする]の横にあるチェックボックスをオフにします。

2)Visual Studioを構成し、[ツール]-[オプション]-[ジャストインタイム]でスクリプトの近くにDawを配置します。

3)最後に、ガジェットの作業を中断してデバッガーを呼び出してヘルプを表示するには、コードの1行のみが必要です。



 debugger;
      
      







これで、ガジェットを起動すると、コードトレースへの接続を促すウィンドウが表示されます。



読んでくれてありがとう、誰かが役に立つといいな。



便利なリンク:

1) github.com/ice-pro/JavaEnvSwitchGadget-ソースとアセンブリ

2) msdn.microsoft.com/en-us/library/windows/desktop/bb456468 (v = vs.85).aspx-開発のためのステップバイステップガイド

3) msdn.microsoft.com/en-us/library/windows/desktop/bb456467 (v = vs.85).aspx-デバッグ方法の説明

4) msdn.microsoft.com/en-us/library/windows/desktop/ff486356 (v = vs.85).aspx-xml記述子の説明

5) msdn.microsoft.com/en-us/magazine/cc163370.aspx-開発に関する別の記事ですが、Vistaでは古い

6) stackoverflow.com/questions/768477/setting-an-environment-variable-in-javascript-JSの環境変数を操作します



PS切り替えが提案されているバージョンの問題については、おそらく何も言わないでしょう。 誰かがリストをトリム/拡張する必要がある場合、これはすぐに行われます。

PS2。 類推(はい、コピーアンドペースト)により、Python 2/3のスイッチを実装できます。



All Articles