Lista de configurações de ambiente úteis em Java

Estive pensando há muito tempo se havia uma lista abrangente de methods / campos (provavelmente estáticos) que armazenam informações de tempo de execução para a JVM. Uma lista incompleta de exemplos:

  • System.out / System.in
  • System.currentTimeMillis ()
  • System.getProperty ()
  • System.getConsole ()
  • Runtime.freeMemory ()
  • Etc

Alguém tem um link ou algo assim?

EDIT: Eu não sou tão burro a ponto de não ter verificado os documentos para o sistema e tempo de execução: P Eu só queria saber se havia outras classs onde methods semelhantes para determinar o estado da máquina que você está executando são armazenados.

   

    Propriedades gerais

    Eu uso esse código para entender algumas das coisas conhecidas das classs Java que são de particular interesse para mim.

    Propriedades do sistema

     import java.awt.*; import javax.swing.*; import javax.swing.border.EmptyBorder; import java.util.*; import java.security.*; /** A small GUId app. that shows many system and environment properties. Designed to be compatible with Java 1.4+ (hence many requirements like no foreach, no generics, no StringBuilder..). @author Andrew Thompson @version 2008-06-29 */ class SystemProperties { static String sentence = "The quick brown fox jumped over the lazy dog."; static String sep = System.getProperty("line.separator"); static String fontText = sentence + sep + sentence.toUpperCase() + sep + "0123456789 !@#$%^&*()_+ []\\;',./ {}|:\"<>?"; static String[] convertObjectToSortedStringArray(Object[] unsorted) { String[] sorted = new String[unsorted.length]; for (int ii = 0; ii < sorted.length; ii++) { sorted[ii] = (String) unsorted[ii]; } Arrays.sort(sorted); return sorted; } static String dataPairToTableRow(String property, Object value) { String val = valueToString(property, value); return "" + "" + "" + property + "" + "" + "" + val + "" + ""; } static String valueToString(String property, Object value) { if (value instanceof Color) { Color color = (Color) value; String converted = "
    " + value.toString() + "
    "; return converted; } else if (property.toLowerCase().endsWith("path") || property.toLowerCase().endsWith("dirs")) { return delimitedToHtmlList( (String) value, System.getProperty("path.separator")); } else { return value.toString(); } } static String delimitedToHtmlList(String values, String delimiter) { String[] parts = values.split(delimiter); StringBuffer sb = new StringBuffer(); sb.append("
      "); for (int ii = 0; ii < parts.length; ii++) { sb.append("
    1. "); sb.append(parts[ii]); sb.append(""); } return sb.toString(); } static Component getExampleOfFont(String fontFamily) { Font font = new Font(fontFamily, Font.PLAIN, 24); JTextArea ta = new JTextArea(); ta.setFont(font); ta.setText(fontText); ta.setEditable(false); // don't allow these to get focus, as it // interferes with desired scroll behavior ta.setFocusable(false); return ta; } static public JScrollPane getOutputWidgetForContent(String content) { JEditorPane op = new JEditorPane(); op.setContentType("text/html"); op.setEditable(false); op.setText(content); return new JScrollPane(op); } public static void main(String[] args) { JTabbedPane tabPane = new JTabbedPane(); StringBuffer sb; String header = ""; sb = new StringBuffer(header); Properties prop = System.getProperties(); String[] propStrings = convertObjectToSortedStringArray( prop.stringPropertyNames().toArray()); for (int ii = 0; ii < propStrings.length; ii++) { sb.append( dataPairToTableRow( propStrings[ii], System.getProperty(propStrings[ii]))); } tabPane.addTab( "System", getOutputWidgetForContent(sb.toString())); sb = new StringBuffer(header); Map environment = System.getenv(); String[] envStrings = convertObjectToSortedStringArray( environment.keySet().toArray()); for (int ii = 0; ii < envStrings.length; ii++) { sb.append( dataPairToTableRow( envStrings[ii], environment.get(envStrings[ii]))); } tabPane.addTab( "Environment", getOutputWidgetForContent(sb.toString())); sb = new StringBuffer(header); GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice[] gs = ge.getScreenDevices(); for (int j = 0; j < gs.length; j++) { GraphicsDevice gd = gs[j]; sb.append( dataPairToTableRow( "Device " + j, gd.toString() + " " + gd.getIDstring())); GraphicsConfiguration[] gc = gd.getConfigurations(); for (int i = 0; i < gc.length; i++) { sb.append( dataPairToTableRow( "Config " + i, (int) gc[i].getBounds().getWidth() + "x" + (int) gc[i].getBounds().getHeight() + " " + gc[i].getColorModel() + ", " + " Accelerated: " + gc[i].getImageCapabilities().isAccelerated() + " True Volatile: " + gc[i].getImageCapabilities().isTrueVolatile())); } } tabPane.addTab( "Graphics Environment", getOutputWidgetForContent(sb.toString())); String[] fonts = ge.getAvailableFontFamilyNames(); JPanel fontTable = new JPanel(new BorderLayout(3, 1)); // to enable key based scrolling in the font panel fontTable.setFocusable(true); JPanel fontNameCol = new JPanel(new GridLayout(0, 1, 2, 2)); JPanel fontExampleCol = new JPanel(new GridLayout(0, 1, 2, 2)); fontTable.add(fontNameCol, BorderLayout.WEST); fontTable.add(fontExampleCol, BorderLayout.CENTER); for (int ii = 0; ii < fonts.length; ii++) { fontNameCol.add(new JLabel(fonts[ii])); fontExampleCol.add(getExampleOfFont(fonts[ii])); } tabPane.add("Fonts", new JScrollPane(fontTable)); sb = new StringBuffer(header); sb.append(""); sb.append(""); sb.append(""); sb.append(""); sb.append(""); sb.append(""); sb.append(""); sb.append(""); Locale[] locales = Locale.getAvailableLocales(); SortableLocale[] sortableLocale = new SortableLocale[locales.length]; for (int ii = 0; ii < locales.length; ii++) { sortableLocale[ii] = new SortableLocale(locales[ii]); } Arrays.sort(sortableLocale); for (int ii = 0; ii < locales.length; ii++) { String prefix = ""; String suffix = ""; Locale locale = sortableLocale[ii].getLocale(); if (locale.equals(Locale.getDefault())) { prefix = ""; suffix = ""; } sb.append(dataPairToTableRow( prefix + locale.toString() + suffix, prefix + locale.getDisplayLanguage() + suffix + "
      "); sb.append("Code"); sb.append(""); sb.append("Language"); sb.append(""); sb.append("Country"); sb.append(""); sb.append("Variant"); sb.append("
      " + prefix + locale.getDisplayCountry() + suffix + "" + prefix + locale.getDisplayVariant() + suffix)); } tabPane.add("Locales", getOutputWidgetForContent(sb.toString())); Locale.getDefault(); int border = 5; JPanel p = new JPanel(new BorderLayout()); p.setBorder(new EmptyBorder(border, border, border, border)); p.add(tabPane, BorderLayout.CENTER); p.setPreferredSize(new Dimension(400, 400)); JFrame f = new JFrame("Properties"); f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); f.getContentPane().add(p, BorderLayout.CENTER); f.pack(); f.setMinimumSize(f.getPreferredSize()); f.setSize(600, 500); f.setLocationRelativeTo(null); f.setVisible(true); } } class SortableLocale implements Comparable { Locale locale; SortableLocale(Locale locale) { this.locale = locale; } public String toString() { return locale.toString(); } public Locale getLocale() { return locale; } public int compareTo(Object object2) { SortableLocale locale2 = (SortableLocale) object2; //Locale locale2 = (Locale)object2; return locale.toString().compareTo( locale2.toString()); } }

    meios de comunicação

    Propriedades relacionadas ao som sintetizado e amostrado e imagens.

    Tipos de Mídia

     /*    */ import javax.imageio.ImageIO; import javax.sound.sampled.*; import javax.sound.midi.*; import java.awt.*; import javax.swing.*; import javax.swing.table.DefaultTableModel; import javax.swing.tree.*; import javax.swing.event.*; import javax.swing.text.Position; public class MediaTypes extends JApplet { JTable table; boolean sortable = false; JTree tree; @Override public void init() { Runnable r = () -> { MediaTypes mediaTypes = new MediaTypes(); String show = ""; if (getParameter("show")!=null) { show = getParameter("show"); } JPanel p = new JPanel(); mediaTypes.createGui(p, show); add(p); validate(); }; SwingUtilities.invokeLater(r); } public static void main(String[] args) { Runnable r = () -> { MediaTypes mediaTypes = new MediaTypes(); JPanel p = new JPanel(); mediaTypes.createGui(p); JOptionPane.showMessageDialog(null,p); }; SwingUtilities.invokeLater(r); } public Object[][] mergeArrays(String name1, Object[] data1, String name2, Object[] data2) { Object[][] data = new Object[data1.length+data2.length][2]; for (int ii=0; ii { if (sortable) { output.setText("Click table column headers to sort."); } DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent(); if (node == null) return; Object nodeInfo = node.getUserObject(); if (nodeInfo instanceof MediaData) { MediaData mediaData = (MediaData)nodeInfo; table.setModel( new DefaultTableModel( mediaData.getData(), mediaData.getColumnNames()) ); } }); for (int ii=0; ii 

    De outros

    Você também pode investigar:

    • InetAddress
    • KeyStore
    • Gerentes
      • CookieManager
      • KeyManagerFactory
      • LogManager

    Esta class imprime algumas coisas para stdout

     import java.util.Properties; import java.util.logging.LogManager; import javax.net.ssl.KeyManagerFactory; import java.util.Date; import java.util.Enumeration; import java.util.Locale; import java.util.Map.Entry; import java.awt.DisplayMode; import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.ImageCapabilities; import java.io.File; import java.io.PrintStream; import java.nio.file.Paths; import java.security.KeyStore; import java.lang.management.ClassLoadingMXBean; import java.lang.management.ManagementFactory; import java.lang.management.OperatingSystemMXBean; import java.net.InetAddress; import java.net.UnknownHostException; public class JavaInfo { public static PrintStream out = System.out; public static void printCurrentTime() { out.println("current date " + new Date()); out.println("nano time "+System.nanoTime()); } public static void printSystemEnvironment() { for (Entry e : System.getenv().entrySet()) out.println(e.getKey()+" "+e.getValue()); } public static void printSystemProperties() { Properties props = System.getProperties(); Enumeration enums = props.keys(); while (enums.hasMoreElements()) { String key = enums.nextElement().toString(); out.println(key + " : " + props.getProperty(key)); } } public static void printRuntimeMemory() { Runtime r = Runtime.getRuntime(); out.println("free memory " + r.freeMemory()); out.println("max memory " + r.maxMemory()); out.println("total memory " + r.totalMemory()); } public static void printCommandLineArguments() { out.print("JVM arguments"); for (String arg : ManagementFactory.getRuntimeMXBean().getInputArguments()) out.print(" "+arg); out.println(); } public static void printClassLoaderInfo() { ClassLoader cl = Thread.currentThread().getContextClassLoader(); out.println("thread context class loader "+cl.getClass().getName()); out.println("system class loader "+ClassLoader.getSystemClassLoader().getClass().getName()); ClassLoadingMXBean cx = ManagementFactory.getClassLoadingMXBean(); out.println("loaded classs count "+cx.getLoadedClassCount()); } public static void printOSInfo() { OperatingSystemMXBean os = ManagementFactory.getOperatingSystemMXBean(); out.println("OS name "+os.getName()+" version "+os.getVersion()); out.println("architecture "+os.getArch()); out.println("available processors "+os.getAvailableProcessors()); } public static void printCPUUsage() { out.println("Current thread CPU time "+ManagementFactory.getThreadMXBean().getCurrentThreadCpuTime()); out.println("number of threads "+ManagementFactory.getThreadMXBean().getThreadCount()); out.println("system load average "+ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage()); } public static void printDisplayInfo() { int g = 0; for (GraphicsDevice gd : GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()) { out.println("graphics device #"+(++g)+": "+gd.getIDstring()+" type "+gd.getType()); out.println("\tavailable accelerated memory " + gd.getAvailableAcceleratedMemory()); int c = 0; for (GraphicsConfiguration gc : gd.getConfigurations()) { out.println("\tgraphics configuration #"+(++c)+":"); out.println("\t\twidth "+gc.getBounds().getWidth()+" height "+gc.getBounds().getHeight()); out.println("\t\tfull screen "+gc.getBufferCapabilities().isFullScreenRequired()); ImageCapabilities ic = gc.getImageCapabilities(); out.println("\t\tis accelerated "+ic.isAccelerated()); } DisplayMode dm = gd.getDisplayMode(); out.println("\tdisplay mode bit width "+dm.getWidth()+" height "+dm.getHeight()+" bit depth "+dm.getBitDepth()+" refresh rate "+dm.getRefreshRate()); int m = 0; for (DisplayMode d : gd.getDisplayModes()) out.println("\talt display mode #"+(++m)+" bit width "+d.getWidth()+" height "+d.getHeight()+" bit depth "+d.getBitDepth()+" refresh rate "+d.getRefreshRate()); } } public static void printFontsInfo() { out.println("available fonts: "+String.join(",", GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames())); } public static void printLocaleInfo() { out.println("default locale: "+Locale.getDefault().getDisplayName()+" country "+Locale.getDefault().getCountry()+" language "+Locale.getDefault().getLanguage()); out.println("available locales:"); for (Locale l : Locale.getAvailableLocales()) out.println("\t"+l.getDisplayName()+" country "+l.getCountry()+" language "+l.getLanguage()); } public static void printDiskInfo() { System.out.println("Current directory: "+Paths.get(".").toAbsolutePath().normalize().toString()); File[] roots = File.listRoots(); for (File r : roots) { out.println("File system root: " + r.getAbsolutePath()); out.println("\tTotal space (bytes): " + r.getTotalSpace()); out.println("\tFree space (bytes): " + r.getFreeSpace()); out.println("\tUsable space (bytes): " + r.getUsableSpace()); out.println("\tcan write "+r.canWrite()); } } public static void printNetworkInfo() throws UnknownHostException { out.println("host name "+InetAddress.getLocalHost().getHostName()); out.println("host IP address "+InetAddress.getLocalHost().getHostAddress()); } public static void printSecurityInfo() throws UnknownHostException { SecurityManager security = System.getSecurityManager(); if (security != null) { out.println("security manager "+security.getClass().getName()+" in check "+security.getInCheck()); } else { out.println("no security manager"); } } public static void printKeyManagerInfo() { out.println("key manager default algorithm "+KeyManagerFactory.getDefaultAlgorithm()); out.println("key store default type "+KeyStore.getDefaultType()); } public static void printLoggingInfo() { for (String logger : LogManager.getLoggingMXBean().getLoggerNames()) { out.println("logger: \""+logger+"\" level \""+LogManager.getLoggingMXBean().getLoggerLevel(logger)+"\""); } } public static void main(String args []) throws Exception { out.println("****************************************"); out.println("DATE INFO"); printCurrentTime(); out.println(""); out.println("****************************************"); out.println("JVM COMMAND LINE ARGUMENTS"); printCommandLineArguments(); out.println(""); out.println("****************************************"); out.println("ENVIRONMENT"); printSystemEnvironment(); out.println(""); out.println("****************************************"); out.println("SYSTEM PROPERTIES"); printSystemProperties(); out.println(""); out.println("****************************************"); out.println("CLASS LOADER"); printClassLoaderInfo(); out.println(""); out.println("****************************************"); out.println("OPERATING SYSTEM"); printOSInfo(); out.println(""); out.println("****************************************"); out.println("MEMORY"); printRuntimeMemory(); out.println(""); out.println("****************************************"); out.println("CPU"); printCPUUsage(); out.println(""); out.println("****************************************"); out.println("DISK"); printDiskInfo(); out.println(""); out.println("****************************************"); out.println("NETWORK"); printNetworkInfo(); out.println(""); out.println("****************************************"); out.println("SECURITY"); printSecurityInfo(); out.println(""); out.println(""); out.println("****************************************"); out.println("LOG"); printLoggingInfo(); out.println(""); out.println("****************************************"); out.println("KEY MANAGER"); printKeyManagerInfo(); out.println(""); out.println("****************************************"); out.println("DISPLAY DEVICES"); printDisplayInfo(); out.println(""); out.println("****************************************"); out.println("FONTS"); printFontsInfo(); out.println(""); out.println("****************************************"); out.println("LOCALES"); printLocaleInfo(); } }