Avatar billede jonas82 Nybegynder
04. februar 2009 - 18:02 Der er 8 kommentarer og
1 løsning

Sætte systemuret via Java

Nogen bud til hvordan jeg kan hente og sætte systemets tid via java? Har behov for at sætte det så præcist som muligt. Gerne nanosekunder^^ ;)

Ved ikke om det måske er OS specifikke kald(jeg kører windows)?
Avatar billede arne_v Ekspert
04. februar 2009 - 18:27 #1
Du skal igang med noget JNI.

Altsaa skrive noget C kode som saetter tiden og saa kalde det fra Java.

Java er ikke det rette sprog til meget operativ system og/eller hardware naere ting.
Avatar billede arne_v Ekspert
04. februar 2009 - 18:30 #2
Win32 kaldet er:
  SetSystemTime
og kan kun saette ned til millisekunder.
Avatar billede jonas82 Nybegynder
04. februar 2009 - 18:35 #3
JNI, C har jeg ikke rigtig forstand på(kan self læse op på det)

Er det måske en mulgihed at lave en bat-fil der gør det ønskede, og eksekvere den fra Java?
Avatar billede arne_v Ekspert
04. februar 2009 - 18:54 #4
Runtime.getRuntime().exec() kan kalde en BAT fil.

Saa det er en mulighed.

Men det tager noget tid at starte en ny process, saa det vil vaere svaert at saette tide praecist med den metode.
Avatar billede jonas82 Nybegynder
04. februar 2009 - 20:55 #5
Går frem efter jni metoden og er kommet frem til følgende:

JNIEXPORT void JNICALL Java_WindowsClockWrapper_SetSystemTime
  (JNIEnv *env, jobject obj, jlong time)
{
    SYSTEMTIME st;
    st.wDay =
    st.wDayOfWeek =
    st.wHour =
    st.wMilliseconds =
    st.wMinute =
    st.wMonth =
    st.wSecond =
    st.wYear =
   
    SetSystemTime(&st);
}

Indputtet er en long med et "unix timestamp", men hvordan får jeg det lige lavet om til en SYSTEMTIME?
Avatar billede arne_v Ekspert
04. februar 2009 - 21:02 #6
localtime eller gmtime standard C funktionerne kan splitte den op.
Avatar billede arne_v Ekspert
04. februar 2009 - 21:03 #7
Et unix timestamp - time_t i C - er ioevrigt kun sekunder !
Avatar billede jonas82 Nybegynder
07. februar 2009 - 21:00 #8
Sendte bare nogen flere variable med. Mine C kundskaber rækker ikke til mere ;)

Tak for hjælpen. Smider du et svar?
Avatar billede arne_v Ekspert
07. februar 2009 - 21:29 #9
kommer her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester