De nombreuses exceptions FileNotFoundExceptions indiquant «Le fichier est trop ouvert» sont affichées dans le journal des erreurs.
Caused by: java.io.FileNotFoundException: /user/local/apache-tomcat-8/**/sample/WEB-INF/**/sample.jar (Le fichier est trop ouvert)
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:225)
        at java.util.zip.ZipFile.<init>(ZipFile.java:155)
        at java.util.jar.JarFile.<init>(JarFile.java:166)
        at java.util.jar.JarFile.<init>(JarFile.java:103)
・
・
 (réduction)
・
・
Caused by: java.io.FileNotFoundException: /user/local/apache-tomcat-8/**/sample/WEB-INF/**/sample.jar (Le fichier est trop ouvert)
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:225)
        at java.util.zip.ZipFile.<init>(ZipFile.java:155)
        at java.util.jar.JarFile.<init>(JarFile.java:166)
        at java.util.jar.JarFile.<init>(JarFile.java:103)
Si vous utilisez ProcessBuilder, InputStream, OutputStream et ErrorStream seront ouverts sans autorisation en arrière-plan, il semble donc que vous manquerez de ressources à moins que vous ne fermiez tous les flux.
package sample;
import java.io.IOException;
public class ProcessExecutor {
  
 	public void execute(String... command) throws IOException {
  		ProcessBuilder processBuilder = new ProcessBuilder(command);
  		Process process = processBuilder.start();
  		process.waitFor();
  		process.destroy();
 	}
}
L'erreur a été résolue en ajoutant fermement un processus de fermeture à tous les flux, comme indiqué ci-dessous.
package sample;
import java.io.IOException;
public class ProcessExecutor {
  
 	public void execute(String... command) throws IOException {
  		ProcessBuilder processBuilder = new ProcessBuilder(command);
  		Process process = processBuilder.start();
  		process.waitFor();
  		
  		//Ajouté plus tard
  		process.getInputStream().close();
  		process.getOutputStream().close();
  		process.getErrorStream().close();
  		process.destroy();
 	}
}