1

我创建了一个带有 java 类(Invoke)的 java 库(名为:invoke)。在设计器导航窗格中的代码下展开脚本库时可以看到它。

代码是:

package com.kkm.vijay;   

public class Invoke {

    public static void main(String[] args) {

        Runtime r = Runtime.getRuntime();
        Process p = r.exec("C://some.exe");

    }
}

使用以下ssjs按钮onclick事件在浏览器中预览时显示错误:500 。

importPackage(com.kkmsoft.vijay);
var v=new Invoke();
v.main();

即使我在类中使用了一个函数并将 ssjs 的最后一行更改为v.fn()。然而同样的问题。

4

1 回答 1

5

有很多事情是错误的,正如 Fredrik 提到的,您应该打开标准的错误页面。

您的第一个代码不会运行,因为它没有正确捕获异常。您还使用了 main() 方法,该方法通常用于执行程序。但是您在没有任何参数的情况下调用它。避免使用该方法,除非它用于执行应用程序。

所以把它改成这样:

package com.kkm.vijay;   

import java.io.IOException;

public class Invoke {

    public void mainCode() {

        Runtime r = Runtime.getRuntime();
        try {
            Process p = r.exec("C://WINDOWS//notepad.exe");
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

您应该将该代码放在 Designer 的新 Java 视图中。

图像的 Java 视图

接下来您的按钮代码需要更改。

var v=new com.kkm.vijay.Invoke();
v.mainCode();

测试它应该可以正常工作。接下来的问题是,因为它是 SSJS,所以应用程序将在服务器上执行。这可能存在安全隐患,并且可能需要您修改 java.policy 文件才能执行此操作。

相关权限为java.io.FilePermission.

于 2013-06-05T07:45:27.823 回答