1

Java 7 に更新する前は、このコードを使用してアプレットからアプリを起動できました。

public class RIS extends Applet
{
  public void init()
  {
    String rutamedical = getParameter("dir");
    String parametro = getParameter("id");

    Runtime app = Runtime.getRuntime();
    try {
      app.exec(rutamedical + " " + parametro);
    } catch (Exception e) {
      JFrame ventana = new JFrame("Prueba JDialog");
      JOptionPane.showMessageDialog(ventana, "Problema al ejecutar la aplicacion");
    }
  }
}

昨日、Win 8 と Java 7 から試してみましたが、例外がスローされます。うまくいきません。Win 8 と Java 6 で試してみると動作し、Win 7 と Java 7 でも同様に動作します。

何が起こるかについてのアイデアや提案はありますか?

私はこの例外を得ました:

'Cannot run program "H:\Program": CreateProcess error = 2,' System can't find the specified file.

パスは次のようになります。

H:\Program Files (x86)\VM MEDICAL WORKSTATION\CONEXIONRIS\Conexion Ris.exe

..しかし、それは見つからないようですが、Java 6では問題はありませんでした。

アップデート

@AndrewThompsonこれは、アプレットの起動に使用しているHTMLです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
    <head>
        <title>Paso de variables Javascript entre páginas</title>
        <script language="javascript">
              function gup( name ){
                var regexS = "[\\?&]"+name+"=([^&#]*)";
                var regex = new RegExp ( regexS );
                var tmpURL = window.location.href;
                var results = regex.exec( tmpURL );
                if( results == null )
                    return"";
                else
                    return results[1];
            }
            function kill(variable){
                var idx = variable.toString().indexOf("%20");
                while (idx != -1) {
                    variable = variable.toString().replace("%20"," ");
                    idx = variable.toString().indexOf("%20", idx);
                }
                return variable;
            }
        </script>
    </head>
    <body>
        <script language="javascript">
            
            document.write("<APPLET CODE='appletris.RIS' ARCHIVE='applets/AppletRIS.jar' width=0 height=0>");
            var dir = gup( 'dir' );
            dir = kill(dir);
            alert("Alerta html:" + dir)
            document.write("<PARAM NAME='dir' VALUE='"+dir+"'>");
            var id = gup( 'id' );
            id = kill(id);
            document.write("<PARAM NAME='id' VALUE='"+id+"'>");
            
        </script>
    </body>
</html>

次のパスで、クライアント マシンのアプレットからアプリを実行する必要があります。

D:\Program Files (x86)\VM MEDICAL WORKSTATION\CONEXIONRIS\Conexion Ris.exe 

しかし、空白に問題があるようです。「dir」は起動しなければならないアプリのパスです --> BD に保存されています。このアプレットでは Java コンソールが表示されないため、これ以上例外情報を投稿することはできません。

他の方法で実行するのは簡単かもしれませんが、私は他のことを開発する時間があまりなく、アプレットからの実行と "*.exe" を許可するセキュリティ ルールに違反していることを知っています。

4

0 に答える 0