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" を許可するセキュリティ ルールに違反していることを知っています。