Java - File setExecutable(boolean executable, boolean ownerOnly) method



Description

The Java File setExecutable(boolean executable, boolean ownerOnly) method is used to set or modify the execute permission of a file, with an option to restrict it to the owner only.

  • If ownerOnly is true, the execute permission is set only for the file owner.

  • If ownerOnly is false, the execute permission is set for everyone (owner, group, and others).

Declaration

Following is the declaration for java.io.File.setExecutable(boolean executable, boolean ownerOnly) method −

public boolean setExecutable(boolean executable, boolean ownerOnly)

Parameters

  • executable− true sets the access permission to allow execute operations, false denies execute operation.

  • ownerOnly− true sets the execute permission only to the owner's execute permission; otherwise, it applies to everybody.

Return Value

This method returns true if the operation succeeded, else false.

Exception

  • SecurityException − If a security manager exists and its method denies write access to the pathnames.

Example - Usage of File setExecutable(boolean executable, boolean ownerOnly) method

The following example shows the usage of Java File setExecutable(boolean executable, boolean ownerOnly) method. We've created a File reference. Then we're creating a File Object using a file path which is present in the given location. Using setExecutable() method, we're trying to make the file executable and getting the result in boolean variable. Then we're printing the status of file as executable using canExecute() method and result is printed.

FileDemo.java

package com.tutorialspoint;

import java.io.File;

public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
      boolean bool = false;      
      try {     
      
         // create new File objects
         f = new File("F:/test.txt");
         
         // set executable as true for owner
         bool = f.setExecutable(true, true);
         
         // prints
         System.out.println("setExecutable() succeeded?: "+bool);
         
         // can execute
         bool = f.canExecute();
         
         // prints
         System.out.print("Can execute?: "+bool);
         
      } catch(Exception e) {
         // if any error occurs
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result−

setExecutable() succeeded?: true
Can execute?: true

Now, you can check that file is renamed.

Example - Usage of File setExecutable(boolean executable, boolean ownerOnly) method

The following example shows the usage of Java File setExecutable(boolean executable, boolean ownerOnly) method. We've created a File reference. Then we're creating a File Object using a file path which is present in the given location and was made executable in previous example. Using setExecutable() method, we're trying to make the file non-executable and getting the result in boolean variable. Then we're printing the status of file as executable using canExecute() method and result is printed.

FileDemo.java

package com.tutorialspoint;

import java.io.File;

public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
      boolean bool = false;      
      try {     
      
         // create new File objects
         f = new File("F:/test.txt");
         
         // set executable as true for all
         bool = f.setExecutable(true, false);
         
         // prints
         System.out.println("setExecutable() succeeded?: "+bool);
         
         // can execute
         bool = f.canExecute();
         
         // prints
         System.out.print("Can execute?: "+bool);
         
      } catch(Exception e) {
         // if any error occurs
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result−

setExecutable() succeeded?: true
Can execute?: true

Example - Setting Execute Permission with Owner Restriction

The following example shows the usage of Java File setExecutable(boolean executable, boolean ownerOnly) method.

FileDemo.java

package com.tutorialspoint;

import java.io.File;

public class FileDemo {
   public static void main(String[] args) {      
      // Create a File object representing an existing file
      File file = new File("script.bat"); 

      // Set execute permission for owner only
      if (file.setExecutable(true, true)) {
         System.out.println("Execute permission granted only to the owner: " + file.getAbsolutePath());
      } else {
         System.out.println("Failed to set execute permission. Check file existence and permissions.");
      }

      // Set execute permission for all users
      if (file.setExecutable(true, false)) {
         System.out.println("Execute permission granted to all users: " + file.getAbsolutePath());
      } else {
         System.out.println("Failed to set execute permission for all users.");
      }
   }
}

Possible Output

Let us compile and run the above program, this will produce the following result−

Execute permission granted only to the owner: /home/user/script.sh
Execute permission granted to all users: /home/user/script.sh

Explanation

  • The File object represents a file ("script.sh" on Linux/macOS or "script.bat" on Windows).

  • The first call to setExecutable(true, true) grants execute permission only to the owner.

  • The second call to setExecutable(true, false) grants execute permission to all users.

  • The program prints a message indicating success or failure.

java_io_file_methods.htm
Advertisements