00001 package edu.stanford.hci.r3.util;
00002
00003 import java.io.File;
00004 import java.net.URISyntaxException;
00005 import java.net.URL;
00006
00018 public class SystemUtils {
00019
00020 private static final double BYTES_PER_MB = (1024.0 * 1024.0);
00021
00026 public static final String LIBRARY_PATH_KEY = "java.library.path";
00027
00031 public static final String LINE_SEPARATOR = System.getProperties()
00032 .getProperty("line.separator");
00033
00037 public static final String PATH_SEPARATOR = System.getProperty("path.separator");
00038
00039 private static long previousTime;
00040
00050 public static void addToLibraryPath(URL url) {
00051 try {
00052 final String newPath = new File(url.toURI()).getAbsolutePath() + PATH_SEPARATOR
00053 + System.getProperty(LIBRARY_PATH_KEY);
00054 System.setProperty(LIBRARY_PATH_KEY, newPath);
00055 System.out.println(System.getProperty(LIBRARY_PATH_KEY));
00056 } catch (URISyntaxException e) {
00057 e.printStackTrace();
00058 }
00059 }
00060
00064 public static double getFreeMemoryInMB() {
00065 return Runtime.getRuntime().freeMemory() / BYTES_PER_MB;
00066 }
00067
00071 public static File getWorkingDirectory() {
00072 return new File(System.getProperty("user.dir"));
00073 }
00074
00080 public static boolean operatingSystemIsMacOSX() {
00081 String lcOSName = System.getProperty("os.name").toLowerCase();
00082 return lcOSName.startsWith("mac os x");
00083 }
00084
00088 public static boolean operatingSystemIsWindowsVariant() {
00089 String lcOSName = System.getProperty("os.name").toLowerCase();
00090 return lcOSName.startsWith("windows");
00091 }
00092
00113 public static void setWorkingDirectory(File file) {
00114 System.setProperty("user.dir", file.getAbsolutePath());
00115 }
00116
00120 public static void tic() {
00121 previousTime = System.currentTimeMillis();
00122 }
00123
00127 public static void toc() {
00128 DebugUtils.println("Clock: " + (System.currentTimeMillis() - previousTime) + " ms.");
00129 }
00130
00131 }