我创建了一个带有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()。然而同样的问题。
答案 0 :(得分: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视图中。
接下来你的按钮代码需要改变。
var v=new com.kkm.vijay.Invoke();
v.mainCode();
测试它应该正常工作。接下来的问题是,因为它是SSJS,应用程序将在服务器上执行。这可能存在安全隐患,可能需要您修改java.policy文件才能执行此操作。
相关权限为java.io.FilePermission
。