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