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)?
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
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.
04. februar 2009 - 18:30
#2
Win32 kaldet er: SetSystemTime og kan kun saette ned til millisekunder.
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?
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.
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?
04. februar 2009 - 21:02
#6
localtime eller gmtime standard C funktionerne kan splitte den op.
04. februar 2009 - 21:03
#7
Et unix timestamp - time_t i C - er ioevrigt kun sekunder !
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?
07. februar 2009 - 21:29
#9
kommer her
Kurser inden for grundlæggende programmering