SecurityManager类的checkExec()方法 (SecurityManager Class checkExec() method)
checkExec() method is available in java.lang package.
checkExec()方法在java.lang包中可用。
checkExec() method calls checkPermission with FilePermission(commands,"execute") when the given argument holds an absolute path else it calls checkPermission with FilePermission("<<ALL FILES>>","execute").
当给定参数拥有绝对路径时, checkExec()方法将使用FilePermission(commands,“ execute”)调用checkPermission,否则将使用FilePermission(“ << ALL FILES >>”,“ execute”)来调用checkPermission。
checkExec() method is a non-static method, it is accessible with the class object only and if we try to access the method with the class name then we will get an error.
checkExec()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。
checkExec() method may throw an exception at the time of creating process.
在创建过程时, checkExec()方法可能会引发异常。
- SecurityException – This exception may throw when the calling thread is not allowed to create a subprocess and it is called for the current security manager by using exec() method of Runtime.
- NullPointerException – This exception may throw when the given parameter is null.
Syntax:
句法:
public void checkExec(String commands);
Parameter(s):
参数:
String commands – represents the system-specific commands.
字符串命令 –表示系统特定的命令。
Return value:
返回值:
The return type of this method is void, it returns nothing.
此方法的返回类型为void ,不返回任何内容。
Example:
例:
// Java program to demonstrate the example
// of void checkExec(String commands)
// method of SecurityManager
public class CheckExec {
public static void main(String[] args) {
// By using setProperty() method is to set the policy property
// with security manager
System.setProperty("java.security.policy", "file:/C:/java.policy");
// Instantiating a SecurityManager object
SecurityManager smgr = new SecurityManager();
// By using setSecurityManager() method is to set the
// security manager
System.setSecurityManager(smgr);
// By using checkExec(String commands) method is to check
//that the given command is executable or not
smgr.checkExec("TextPad.exe");
// Display the message when command is executed
System.out.println("Command Executed..");
}
}
Output
输出量
Exception in thread "main" java.security.AccessControlException: access denied ("java.io.FilePermission" "<<ALL FILES>>" "execute")
at java.base/java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)
at java.base/java.security.AccessController.checkPermission(AccessController.java:897)
at java.base/java.lang.SecurityManager.checkPermission(SecurityManager.java:322)
at java.base/java.lang.SecurityManager.checkExec(SecurityManager.java:572)
at CheckExec.main(CheckExec.java:20)
翻译自: https://www.includehelp.com/java/securitymanager-checkexec-method-with-example.aspx