N4J.start(int ports,Object args...)
[4] which starts a web-server// System.out/System.err.println java.lang.System.out.println("a message in System.out"); java.lang.System.err.println("a message in System.err"); 'check your JVM log'
// JVM Uptime var String = java.lang.String; var Integer = java.lang.Integer; var ManagementFactory = java.lang.management.ManagementFactory; var rt = ManagementFactory.getRuntimeMXBean(); var seconds = Math.floor(rt.getUptime() / 1000); var s = seconds % 60; var m = Math.floor(seconds / 60) % 60; var h = Math.floor(seconds / (60 * 60)) % 24; var hhmmss = String.format("%02d:%02d:%02d", new Integer(h), new Integer(m), new Integer(s)); 'JVM uptime ['+hhmmss+']';
// An example of java 8 new Date/Time API. var LocalDate = Java.type('java.time.LocalDate'); var Month = Java.type('java.time.Month'); var ChronoUnit = Java.type('java.time.temporal.ChronoUnit'); var today = LocalDate.now(); var firstDayThisYear = LocalDate.of(today.getYear(), Month.JANUARY, 1); var days = ChronoUnit.DAYS.between(firstDayThisYear, today); days + " days have passed since the beginning of the year."
// Thread Dump var threads = java.lang.Thread.getAllStackTraces().keySet().toArray(); var str =''; for (var i=0;i<threads.length;i++) { str+=threads[i]+' - '+threads[i].getState()+'\n'; } str;
// Memory var mem = java.lang.management.ManagementFactory.getMemoryMXBean().getHeapMemoryUsage(); var usd = Math.round( mem.getUsed() / 1048576 ) var cmt = Math.round( mem.getCommitted() / 1048576 ) var max = Math.round( mem.getMax() / 1048576 ) 'Used:'+usd+'MB, Committed:'+cmt+'MB, Max:'+max+'MB';
// Binary Numbers var str =''; for (var i=0;i<1000;i++) { str+=i+'='+java.lang.Integer.toBinaryString(i)+'\n'; } str;
// SLF4J - requires http://www.slf4j.org/ var LoggerFactory = Packages.org.slf4j.LoggerFactory; var logger = LoggerFactory.getLogger('n4j'); logger.info("Hello n4j (info)"); logger.warn("Hello n4j (warn)"); logger.error("Hello n4j (error)");
N4J.start(int port,Object args...)