Java tutorial
/* * This file is part of JGAP. * * JGAP offers a dual license model containing the LGPL as well as the MPL. * * For licensing information please see the file license.txt included with JGAP * or have a look at the top of class org.jgap.Chromosome which representatively * includes the JGAP license policy applicable for any file delivered with JGAP. */ import java.io.*; /** * System-related utility functions. * * @author Klaus Meffert * @since 3.2 */ public class SystemKit { /** String containing the CVS revision. Read out via reflection!*/ private final static String CVS_REVISION = "$Revision: 1.8 $"; /** * @return total memory available by the VM in megabytes. * * @author Klaus Meffert * @since 3.2 (since 3.0 in GPGenotype) */ public static double getTotalMemoryMB() { return getTotalMemoryKB() / 1024; } /** * @return total memory available by the VM in kilobytes. * * @author Klaus Meffert * @since 3.2.1 */ public static double getTotalMemoryKB() { return (Runtime.getRuntime().totalMemory() / 1024); } /** * @return free memory available in the VM in megabytes. * * @author Klaus Meffert * @since 3.2 (since 3.0 in GPGenotype) */ public static double getFreeMemoryMB() { return getFreeMemoryKB() / 1024; } /** * @return free memory available in the VM in kilobytes. * * @author Klaus Meffert * @since 3.2.1 */ public static double getFreeMemoryKB() { return (Runtime.getRuntime().freeMemory() / 1024); } /** * Nicifies a decimal string by cutting of all but two decimal places. * * @param a_mem the number to make nice * @return nicified number as a string * * @since 3.3.1 */ public static String niceMemory(double a_mem) { String freeMB = "" + a_mem; int index = freeMB.indexOf('.'); int len = freeMB.length(); if (len - index > 2) { freeMB = freeMB.substring(0, index + 2); } return freeMB; } /** * Returns the first line of the result of a shell command. * Taken from UUID. * * @param commands the commands to run * @return the first line of the command * @throws IOException * * @since 3.3.3 */ static String getFirstLineOfCommand(String[] commands) throws IOException { Process p = null; BufferedReader reader = null; try { p = Runtime.getRuntime().exec(commands); reader = new BufferedReader(new InputStreamReader(p.getInputStream()), 128); return reader.readLine(); } finally { if (p != null) { if (reader != null) { try { reader.close(); } catch (IOException ex) { } } try { p.getErrorStream().close(); } catch (IOException ex) { } try { p.getOutputStream().close(); } catch (IOException ex) { } p.destroy(); } } } }