Javaアプレットからウェブサーバ上のEXEを実行できる?

このQ&Aのポイント
  • Javaアプレットからウェブサーバ上のEXEを実行する方法について調査しています。
  • 試しにブラウザから実行してみたところ、コンソールにエラーが表示されました。
  • サーバの設定次第で実行可能かどうかを確認したいです。
回答を見る
  • ベストアンサー

Javaアプレットからウェブサーバ上のEXEを実行できる?

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の設定次第でできるのでしょうか。

  • mokpok
  • お礼率62% (154/245)
  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

どういうケースか分かりませんが、とりあえず、できません。 アプレットからEXEファイルを実行することはできません。 理由は簡単で、セキュリティーホールになるから。 EXEをクライアント上、サーバー上、どちらで実行しようとしているのかいまいち分かりませんが、クライアント上ではたとえば、アプレットからexeを起動できてしまうと、cmd.exeのようなものを実行させてクライアントコンピューターそのものを乗っ取ることができてしまいますので、できないようになっています。 サーバー上で実行しようとしても、アプレットはクライアントサイドで実行されていますので、直接サーバー上の実行ファイルを実行することはできません。 例外としては、アプレット等からCGI化したサーバー上のファイルは実行可能です。その場合はHTTPリクエストを発行しますが、おそらく、やりたいこととは違いますよね。

mokpok
質問者

お礼

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

関連するQ&A

  • アプレットをhtmlに乗せると動かなくなります…

    こんにちは。わざわざ見て下さっている方ありがとうございます! 作ったアプレットがアプレットビューアの上でなら動くのに、htmlに乗せると「読み込みに失敗しました」になってしまいます。 私は本当に初心者でして、何をお伝えすればいいのか分からないのですが、htmlのアプレットを右クリックした時に出てくる[Javaコンソール]というものが限りなく怪しいかなと思いましたので、下にペーストしておきました。関係なかったらすみません。 Class: class ThreeDMaze ClassLoader: sun.plugin.security.PluginClassLoader@10dd1f7 java.security.AccessControlException: access denied (java.io.FilePermission .\mapFile read) 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.checkRead(Unknown Source) at java.io.File.list(Unknown Source) at ThreeDMaze.init(ThreeDMaze.java:70) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) どうか宜しくお願いします!

    • ベストアンサー
    • Java
  • 赤色の X イメージが表示され、アプレットが実行されない

    HP上でAppletを起動させたところ、アプレットが存在するはずの位置に赤色の X イメージが表示され、アプレットが実行されません。Javaのコンソールを表示すると以下のようになります。パーミッションはすべてのユーザに読み込み許可を与えているのですが...。 予想としては、 FileReader f = new FileReader("penguin.obj"); この箇所が間違っている気がするのですが、解決方法をどなたか教えてください。 java.security.AccessControlException: access denied (java.io.FilePermission penguin.obj read) 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.checkRead(Unknown Source) at java.io.FileInputStream.<init>(Unknown Source) at java.io.FileInputStream.<init>(Unknown Source) at java.io.FileReader.<init>(Unknown Source) at Drawmap.init(Drawmap.java:22) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

    • ベストアンサー
    • Java
  • AccessControlException

    アプレットでDBの内容を一覧表示するプログラムを作っているのですが、タイトルのエラーが出てしまい困っています。 過去ログを検索したのですが、「ローカル環境での動作のためにはポリシーファイルを作るしかない」ようなことが書かれていたので作りました。 ポリシーファイルは、以前同じようなプログラムを組んだときにはC直下に置いていましたが、今回は同じ場所に置いても解決しません。 アプレットはC直下に作成した別ファイル内に置いています。 以下はエラーです。 ************************************** java.security.AccessControlException: access denied(java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc) 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.checkPackageAccess(Unknown Source) at sun.applet.AppletSecurity.checkPackageAccess(Unknown Source) at sun.applet.AppletClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at DBAccess.open(DBAccess.java:9) at ListController.<init>(Listcontroller.java:12) at ListApplet.init(ListApplet.java:10) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) ********************************* javaはj2sdk1.4.2_04、OSはwinXPを使っています。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Eclipse以外でアプレットが実行出来無い

    おはよう御座います、非常に初歩的な内容だと思うのですが、アプレットについて質問させて頂きます。 現在、Eclipseで作成したアプレットを、ブラウザ上で実行しようとしています。 ですが、Eclipseでアプレットを起動中に自動生成されるhtmlファイルをコピーしたhtmlファイルでも、アプレットを起動することが出来ないのです。 htmlファイルとclassファイルの内容さえ同じであれば、起動出来るのではと思っていたのですが・・・、何処がEclipseとChromeで違い、どう直せば良いのか解らず、質問させて頂きました。 HTMLファイルの内容は <html> <body> <applet code=Practice_1/HelloWorld.class width="200" height="200" > </applet> </body> </html> エラーの内容は以下の通りです。 Java Plug-in 1.6.0_31 使用中の JRE のバージョン 1.6.0_31-b05 Java HotSpot(TM) Client VM ユーザのホームディレクトリ = C:\Users\名前 java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/jbox2d/callbacks/ContactListener at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NoClassDefFoundError: org/jbox2d/callbacks/ContactListener at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: org.jbox2d.callbacks.ContactListener at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 20 more 例外: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/jbox2d/callbacks/ContactListener 実行しようとしているプログラムでは、Eclipseで言う所のプロジェクト内に、ImageとPractice_1というパッケージがあり、動作させたいクラスはPractice_1内に入っています、Eclipseでは当然何のエラーも無く実行出来ます。 見た限り、ContactListenerクラスが見つからない、というエラーのようなのですが、それ以外の後から入れたライブラリのクラスに関してはエラーが表示されていないので困惑しています。 Eclipseで自動生成された内容から一切変えていないので、htmlファイルが間違っているわけでは無いと思っていたのですが、ブラウザ上で起動する場合は何か付け加える物があるのでしょうか・・・、どなたか解る方が居ましたら、解答頂けると助かります。

    • ベストアンサー
    • Java
  • javaアプレットを実行するとエラーになります。

    javaアプレットを実行するとエラーになります。 import netscape.javascript.JSObject; JAObjectをインポートしたアプレットをEclipseで開発しているのですが、赤い字でエラーが出ます。 netscape.javascript.JSException at netscape.javascript.JSObject.getWindow(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 初心者でどうやってエラーを解決してよいのか分かりません。 クラスパスの設定で解決できる問題なのでしょうか。 分かる方おりましたら教えてください。

    • ベストアンサー
    • Java
  • アプレットとポスグレで・・・

    (Windows2000 Access2000 RedHatLinux7.2 PostgreSQL7.1.3) アプレットからIDを入力して、そのIDが持つ情報をテキストフィールドに表示したいのですが、IDを入力してボタンを押したらコンソールに以下のエラーが出てしまいました・・。 Excption occurred during event dispatching: java.security.AccessControlExeption: access denied (java.lang.RuntimePermission accessClassInPackage.sun.jdbc.odbc) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:272) at java.security.AccessController.checkPermission(AccessController.java:399) at java.lang.SecurityManager.checkPermission(SecurityManager.java:545) at sun.applet.AppletSecurity.checkPakageAccess(AppletSecurity.java:169) at sun.applet.AppeltClassLoader.loadC(AppletClassLoader.java:313) at java.lang.ClassLoader.loadClass(ClassLoader.java253) at java.lang.Class.forName(Class.java.:120) at DBAccess.<init>(DBAccess.java:24) at DBAccess.getDBAccess(DBAccess.java:42) at shain.setShain(shain.java:201) at shain.actionPerformed(shain.java:177) at java.awt.Button.processActionEvent(Button.java:329) at java.awt.Conponent.dispatchEvent(Component.java:2499) at java.awt.EventQueue.dispatchEvent(EventQueue.java:319) at java.awt.EventDispatchThread.pumpOneEvent at java.awt.EventDispatchThread.pumpEvents at java.awt.EventDispatchThread.run(EventDispatchThread.java:84) なにかセキュリティエラーっぽい気がしますが、サーバー側でアクセス許可の設定をしないといけないですか?GRANTでアクセス許可を与えるというのがありますが、どのユーザーを指定していいかわかりません。 宜しくお願いしますσ(^^)

    • ベストアンサー
    • Java
  • JAVAでアプレットのエラー(eclipse)の意味が分かりません

     JAVAプログラムをeclipseで書いています。  新しくプロジェクトをパッケジエクスプローラに作成し、ドラッグアンドドロップでメモ帳で書いたソースコードを プロジェクト内に落とし込んでやりました。  実行すると、アプレットのウインドウは表示されるのですが、「Start アプレットは初期化されていません」 とウインドウに表示されます。  一体何が原因でしょうか。  コード自体にはエラーはなく、コンソールには、以下のようなコメントが出ていますが、エラーの意味が分かりません、 一体どういうことなのでしょうか。  このようなドラッグアンドドロップのやり方は間違っているのでしょうか。 java.lang.ClassCastException: JFrameTest cannot be cast to java.applet.Applet at sun.applet.AppletPanel.createApplet(Unknown Source) at sun.applet.AppletPanel.runLoader(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

    • ベストアンサー
    • Java
  • javaでopenglプログラムが実行できません

    お世話になります。 javaでopenglのプログラムを実行すべくjava.netのJOGLプロジェクトのページから以下をダウンロードしました。 jogl-1.1.1a-windows-i586.zip jogl-demos.zip jogl-demos-src.zip 参考サイトの指示に従って、jogl.jarを含む全ての*.jarを[JDK_HOME]\jre\lib\extにコピーし、gluegen-rt.dll,jogl.dll,jogl_awt.dll,jogl_cg.dllを[JDK_HOME]\jre\binにコピーしてインストールしましたが 以下のようにデモプログラムを実行すると以下のエラーが出て実行できません。 どこが悪いのでしょうか?よろしくお願いします。 F:\java\opengl\jogl-demos>java -cp jogl-demos.jar demos.gears.Gears Exception in thread "main" java.lang.NoClassDefFoundError: javax/media/opengl/GLEventListener at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) Caused by: java.lang.ClassNotFoundException: javax.media.opengl.GLEventListener at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) ... 12 more Could not find the main class: demos.gears.Gears. Program will exit. 参考サイト http://itpro.nikkeibp.co.jp/article/COLUMN/20060710/242865/?ST=develop

  • Javaプログラムでコマンド実行時のエラー

    Webアプリにて下記プラグラムを実行(Tomcat上で実行)したところ以下のような例外が でました。 cd /home/test/geniatagger-3.0.1 ディレクトリに移動するコマンドで失敗しているようですが Teraterm上で手入力で実行すると実行できます。 何が原因かわかりますでしょうか。 【例外】 java.io.IOException: Cannot run program "cd /home/test/geniatagger-3.0.1": java.io.IOException: error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:475) at java.lang.Runtime.exec(Runtime.java:610) at java.lang.Runtime.exec(Runtime.java:483) 【実行したプログラム】 String[] command = {"cd /home/test/geniatagger-3.0.1", "./geniatagger", "I had a pen."}; Process process = Runtime.getRuntime().exec(command); //exec()が非同期実行であるため実行結果が返ってくるまで待つ int no = process.waitFor(); BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream())); String str = ""; while (in.ready()) { str = in.readLine(); System.out.println("segmentate=" + str); } in.close();

    • ベストアンサー
    • Java
  • JAVAアプレットのホームページへの挿入がうまくいかなくて困っています

    JAVAアプレットのホームページへの挿入がうまくいかなくて困っています。 原因が分かる方いたら教えてください。 ECLIPSEで作成した.classファイルをホームページビルダーのJAVAappletの挿入という機能を使って挿入しようとしました。 ホームページビルダーの素材集にあるJAVAアプレットはうまく表示できたのですが、 「エラー。クリックした詳細を確認してください」というメッセージが出ます。 クリックして出るエラーは次の通り。 ↓ Java Plug-in 1.6.0_17 使用中の JRE のバージョン 1.6.0_17-b04 Java HotSpot(TM) Client VM ユーザのホームディレクトリ = C:\Users\solitaire ---------------------------------------------------- c: コンソールウィンドウをクリア f: ファイナライズキューのオブジェクトをファイナライズ g: ガベージコレクト h: このヘルプメッセージを表示 l: クラスローダリストをダンプ m: メモリ使用率を表示 o: トリガログ q: コンソールを非表示 r: ポリシー設定を再ロード s: システムプロパティと配備プロパティをダンプ t: スレッドリストをダンプ v: スレッドスタックをダンプ x: クラスローダキャッシュをクリア 0-5: トレースレベルを <n> に設定 ---------------------------------------------------- java.lang.NoClassDefFoundError: sampleapplet (wrong name: sampleapplet/sampleapplet) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source) at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source) at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 例外: java.lang.NoClassDefFoundError: sampleapplet (wrong name: sampleapplet/sampleapplet) /////////////////////////////////////// ↓HTMLコードの一部 <p>アプレットを挿入してみたのだけれど</p> <p><applet code="sampleapplet.class" width="300" height="300"></applet></p> //////////////////////////////////////////// ↓ビルド前のJAVAコードの一部 package sampleapplet; import java.applet.Applet; import java.awt.Graphics; public class sampleapplet extends Applet{ public void paint(Graphics g){ g.drawLine(10, 10, 180, 110); } }

    • ベストアンサー
    • Java