
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_lang_management_RuntimeMXBean__
#define __java_lang_management_RuntimeMXBean__

#pragma interface

#include <java/lang/Object.h>

class java::lang::management::RuntimeMXBean : public ::java::lang::Object
{

public:
  virtual ::java::lang::String * getBootClassPath() = 0;
  virtual ::java::lang::String * getClassPath() = 0;
  virtual ::java::util::List * getInputArguments() = 0;
  virtual ::java::lang::String * getLibraryPath() = 0;
  virtual ::java::lang::String * getManagementSpecVersion() = 0;
  virtual ::java::lang::String * getName() = 0;
  virtual ::java::lang::String * getSpecName() = 0;
  virtual ::java::lang::String * getSpecVendor() = 0;
  virtual ::java::lang::String * getSpecVersion() = 0;
  virtual jlong getStartTime() = 0;
  virtual ::java::util::Map * getSystemProperties() = 0;
  virtual jlong getUptime() = 0;
  virtual ::java::lang::String * getVmName() = 0;
  virtual ::java::lang::String * getVmVendor() = 0;
  virtual ::java::lang::String * getVmVersion() = 0;
  virtual jboolean isBootClassPathSupported() = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __java_lang_management_RuntimeMXBean__
