Могут ли доверенные апплеты 1.5 выполнять системные команды? - PullRequest
4 голосов
/ 06 августа 2009

Если так, есть ли какие-либо ограничения на эту способность?В частности, мне нужно ориентироваться на Mac OSX.

Ответы [ 3 ]

5 голосов
/ 10 августа 2009

Я использовал это раньше, чтобы запускать вещи в системе Windows, но никогда не пробовал это на Mac

public void launchScript(String args)
{
    String cmd = null;
    try
    {
        cmd = getParameter(PARAM_CMD);
        System.out.println("args value : = " + args);
        System.out.println("cmd value : = " + cmd);
        System.out.println("Full command:  = " + cmd + " " + args);
        if (cmd != null && !cmd.trim().equals(""))
        {
            if (args == null || args.trim().equals(""))
            {
                final String tempcmd = cmd;
                AccessController.doPrivileged(new PrivilegedAction() {
                public Object run() {
                try
                {
                    Runtime.getRuntime().exec(tempcmd);
                }
                catch (Exception e)
                {
                    System.out.println("Caught exception in privileged block, Exception:" + e.toString());
                }
                return null; // nothing to return
            }
            });                    
                System.out.println(cmd);
            }
            else
            {
                final String tempargs = args;
                final String tempcmd1 = cmd;
                AccessController.doPrivileged(new PrivilegedAction() {
                    public Object run() 
                    {
                        try
                        {
                            Runtime.getRuntime().exec(tempcmd1 + " " + tempargs);
                        }
                        catch (Exception e)
                        {
                            System.out.println("Caught exception in privileged block, Exception:" + e.toString());
                        }
                        return null; // nothing to return
                    }
                });                        
                System.out.println(cmd + " " + args);
            }
        }
        else
        {
            System.out.println("execCmd parameter is null or empty");
        }
    }
    catch (Exception e)
    {
        System.out.println("Error executing command --> " + cmd + " (" + args + ")");
        System.out.println(e);
    }
}
4 голосов
/ 06 августа 2009

Оказывается, могут.

0 голосов
/ 21 августа 2009

Единственная связанная с этим проблема, о которой я знаю, заключается в том, что при использовании старого «классического» подключаемого модуля в Internet Explorer в Windows Vista апплет был запущен в процессе «низкой целостности», что сделало его особенно бесполезным.

Как всегда, мой обычный совет - знать, что вы делаете, прежде чем подписывать какой-либо код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...