Visual BasicやJavaアプレットについてメモ - Tattuの備忘Log

Tattuの備忘Log ホーム » 設定記録 » Visual BasicやJavaアプレットについてメモ

Visual BasicやJavaアプレットについてメモ

Visual Basic / Java

Visual Basicのランタイムがインストールできない


先日、Windows8.1をリカバリーした際に、ランタイムをインストールしようとすると、以下のエラーが出た。
visualjavamemo_01.png
原因は、セキュリティパッチKB2918614をインストールすると発生するエラーらしい。

Windows Installer サービス用のセキュリティ更新プログラムについてによると、
インストーラをホワイトリストに追加することでインストールできるようになるとのこと。
作業内容は、上記サイトの「既知の問題 2 影響を受けるプログラムをオプトアウトする手順」の項目に詳しく載っているが、ここではメモのために画像も載せておく。
なお、レジストリをいじるので、作業には十分注意を払ってください。

1.レジストリエディタを起動する。スタートから「ファイル名を指定して実行」(win.gif+R)を起動し、[regedit]と入力する。
visualjavamemo_02.png

2.以下の順に項目を開く。
HKEY_LOCAL_MACHINE、SOFTWARE、Policies、Microsoft、Windows、Installer

開いたら右側の空白を右クリックし、「新規(N)」、「DWORD (32ビット)値(D)」の順にクリックし、[SecureRepairPolicy]と入力する。
visualjavamemo_03.png

3.「SecureRepairPolicy」をダブルクリックし、「値のデータ(V)」に[2]と入力する。
visualjavamemo_04.png

4.右側の空白を右クリックし、「新規(N)」、「キー(K)」の順にクリックする。
visualjavamemo_05.png

5.[SecureRepairWhitelist]と入力し、右側の空白を右クリックし、「新規(N)」、「文字列値(S)」をクリック。
visualjavamemo_06.png

6.インストーラを右クリックし、「プロパティ(R)」をクリックし、「詳細」タブをクリックする。
「元の場所」の項目に「改訂番号」とある項目内の文字列をコピーし、5.で作成した文字列値の名前を変更し、貼り付ける。
visualjavamemo_07.png

あとは一旦ログインし直し、インストーラを実行することでインストールできる。

Javaアプレット


とあるサイトに設置されているJavaアプレットを動かそうとした際に、エラーが出て動作しなかったり、動作してもデータを送信できなかった。

まず、エラーが出て動作しない場合。セキュリティが強化されたために、証明書がないものは動作しないらしい。
visualjavamemo_08.png

そこで、該当するJavaアプレットが設置されているサイトをホワイトリストに登録することで動作するようになる。
セキュリティ上の問題があるので、信頼できるサイトのみ追加してください。

1.「Javaコントロール・パネル」を起動する(Windowsの場合は「コントロールパネル」、「Java」)。

2.「セキュリティ」タブをクリックし、「サイト・リストの編集(S)」をクリックする。
visualjavamemo_09.png

3.「追加(A)」をクリックし、サイトのアドレス(例:http://site-aiueo.co.jp/data/java.cgi の場合、http://site-aiueo.co.jp/) を入力する。
visualjavamemo_10.png visualjavamemo_11.png

4.警告画面が出たら、「続行」をクリックし、「OK」をクリックする。
visualjavamemo_12.png visualjavamemo_13.png

ブラウザを起動させている場合は、一度ブラウザを再起動する必要がある。
動かしたいJavaアプレットがあるサイトにアクセスした際に許可を求められた場合は、許可することで正常に動作する。
visualjavamemo_14.png


「access denied」と出てエラーが出てデータを送信できない場合、ポリシーファイル(java.policy)を編集する必要がある。
visualjavamemo_15.png

ファイルを編集する際には、編集するファイルのバックアップを事前にとってください。
また、この操作もセキュリティ上の問題が発生するので、必ず信頼できるサイトや場所のものを追加してください。


java.policyがあるフォルダー
Windowsの場合
C:\Program Files (x86)\Java\jre*.*.*_**\lib\security (32bit)
C:\Program Files\Java\jre*.*.*_**\lib\security (64bit,OSが32bitの場合)
※「jre*.*.*_**」の部分は、インストーラのバージョンによって異なります。

Macの場合
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/security

Linux[Ubuntu 14.10]の場合 (インストール先は、システムやインストーラによって異なります)
/usr/lib/jvm/java-*-oracle/jre/lib/security
※「java-*-oracle」の部分は、インストーラのバージョンによって異なります。

1.java.policyをデスクトップなどにコピーする

2.コピーしたjava.policyをテキストエディタで開き、「grant」項目内の最後に以下の文字列を追記する。
permission java.net.SocketPermission "ドメイン:ポート番号", "connect,resolve";

[ドメイン]は、エラーが出たサイト(例:site-aiueo.co.jp)かエラーに表示されているIP(例:192.168.1.150:80 ならば192.168.1.150)、
[ポート番号]は、エラーに表示されている番号(192.168.1.150:80 ならば80)を入力する。
visualjavamemo_16.png

3.上書き保存し、java.policyがあるフォルダーへ上書き保存したファイルをコピーする。その際、管理者権限が必要なので、許可すること。

ブラウザを起動させている場合は、一度ブラウザを再起動する必要がある。
これでデータが送信できるか確認する。

自分もデータが送信できなくて困ったが、PaintBBSで投稿できない?【あーとねっとテキスト掲示板】が役に立った(お恥ずかしながらT.mは私です)。
情報をくださった方々にはこの場をお借りして改めて御礼申し上げます。
コメント

トラックバック

http://tattu1902.blog136.fc2.com/tb.php/95-e2443ad3