プロが教えるわが家の防犯対策術!

JavaアプレットからRuntime.exec()を使って同ディレクトリ内のEXEを呼び出し、
EXEが出力したファイルをアプレットで読み込む、
というのをウェブサーバ上で(というかウェブブラウザから)やりたいのですが、
それはできるのでしょうか。
試しにブラウザから実行してみたところ、コンソールに以下のエラーが出力され失敗しました。


Exception in thread "AWT-EventQueue-4" java.security.AccessControlException: access denied (java.io.FilePermission <<ALL FILES>> execute)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkExec(Unknown Source)
    at java.lang.ProcessBuilder.start(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    以下略


サーバ環境は以下です。
Windows 7 64bit pro
XAMPP for windows ver 1.7.2

Apacheの設定次第でできるのでしょうか。

A 回答 (1件)

どういうケースか分かりませんが、とりあえず、できません。


アプレットからEXEファイルを実行することはできません。
理由は簡単で、セキュリティーホールになるから。

EXEをクライアント上、サーバー上、どちらで実行しようとしているのかいまいち分かりませんが、クライアント上ではたとえば、アプレットからexeを起動できてしまうと、cmd.exeのようなものを実行させてクライアントコンピューターそのものを乗っ取ることができてしまいますので、できないようになっています。
サーバー上で実行しようとしても、アプレットはクライアントサイドで実行されていますので、直接サーバー上の実行ファイルを実行することはできません。

例外としては、アプレット等からCGI化したサーバー上のファイルは実行可能です。その場合はHTTPリクエストを発行しますが、おそらく、やりたいこととは違いますよね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
やはり無理なんですね。
違う方法を試すことにします。
ありがとうございました。

お礼日時:2009/12/12 14:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!