Cela allait être un commentaire mais a été un peu long.
Réponses contradictoires quant à la raison pour laquelle il peut y avoir un manque d'équivalence here on ServerFault: Windows Server 2008 R2 max open files limit. TLDR: Windows est uniquement limité par le matériel disponible par rapport à Windows est limité par 32 par rapport à l'implémentation 64 bits (MS Technet Blog Post - Pushing the Limits of Windows: Handles). Certes, c'est une vieille information.
Mais! si vous notez les JavaDocs pour le com.sun.management
package, vous noterez bien sûr l'absence évidente d'une version Windows du UnixOperatingSystemMXBean
qui étendrait OperatingSystemMXBean pour fournir la fonctionnalité. Même UnixOperatingSystemMXBean
n'existe que pour fournir getMaxFileDescriptorCount()
et getOpenFileDescriptorCount()
, il semble donc peu probable que Windows ait le même concept.
Edit:
J'ai trouvé un petit programme qui montre genre de ceci, que je peaufiné. Descriptors.java
import java.lang.management.ManagementFactory;
import java.lang.management.OperatingSystemMXBean;
import java.lang.reflect.Method;
class Descriptors {
public static void main(String [ ] args) {
System.out.println(osMxBean.getClass().getName());
OperatingSystemMXBean osMxBean = ManagementFactory.getOperatingSystemMXBean();
try {
Method getMaxFileDescriptorCountField = osMxBean.getClass().getDeclaredMethod("getMaxFileDescriptorCount");
Method getOpenFileDescriptorCountField = osMxBean.getClass().getDeclaredMethod("getOpenFileDescriptorCount");
getMaxFileDescriptorCountField.setAccessible(true);
getOpenFileDescriptorCountField.setAccessible(true);
System.out.println(getOpenFileDescriptorCountField.invoke(osMxBean) + "/" + getMaxFileDescriptorCountField.invoke(osMxBean));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Sur Linux:
com.sun.management.UnixOperatingSystem
11/2048
Sous Windows:
sun.management.OperatingSystemImpl
java.lang.NoSuchMethodException:
sun.management.OperatingSystemImpl.getMaxFileDescriptorCount()
at java.lang.Class.getDeclaredMethod(Unknown Source)
at Descriptors.main(Descriptors.java:10)