java - Kan ikke finde klasse com.sun.security.auth.module.NTSystem.NTSystem på RDi 9.5 (64-bit) JRE 1.8

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg kan kontrollere, at den medleverede bruger er systemadministrator eller ej på Windows-maskine med JRE 1.6 som


String groups[] = (new com.sun.security.auth.module.NTSystem()).getGroupIDs();
for (int i = 0; i < groups.length; i++)
{
    if ("S-1-5-32-544".equals(groups[i]))
    {
        return true;
    }
}


Ref: http://www.rgagnon.com/javadetails/java-check-if-current-user-is-admin-(windows).html [2]


Men denne klasse NTSystem er ikke tilgængelig på IBM RDi 9.5 (64-bit) JRE 1.8.
Selv den komplette pakke er ikke tilgængelig, dvs.



  com.sun.security.auth. *



Enhver ide, Sådan gør du ovenstående opgave i RDi 9.5 (64-bit) JRE 1.8 ??

Bedste reference


Oracle sagde, at JDK8 skifter sol. * Klasser



  Nogle API'er i solen. * Pakkerne er ændret. Disse API'er er ikke
  beregnet til brug af udviklere. Udviklere importerer fra solen. *
  pakker gør det på egen risiko.
For flere detaljer,
  se hvorfor udviklere ikke skal skrive programmer, der kalder 'sol' pakker. http://www.oracle.com/technetwork/java/faq-sun-packages-142232.html[3]



src:
http://www.oracle.com/technetwork/java/javase/8-compatibility-guide-2156366.html[4]

Andre referencer 1


Du skal have den nødvendige JAR (rt.jar) i din JRE, og den er en del af JRE.


Hvis den er tilgængelig og stadig ikke kan se klasserne, skal du indstille den korrekte driftstid for IBM RDi.

Andre referencer 2


Fik den perfekte løsning på mit problem ved at bruge JNA-biblioteket.


http://www.rgagnon.com/javadetails/java-detective-if-current-user-is-admin-using-jna.html [5]