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

#ifndef __java_lang_ClassNotFoundException__
#define __java_lang_ClassNotFoundException__

#pragma interface

#include <java/lang/ReflectiveOperationException.h>

class java::lang::ClassNotFoundException : public ::java::lang::ReflectiveOperationException
{

public:
  ClassNotFoundException();
  ClassNotFoundException(::java::lang::String *);
  ClassNotFoundException(::java::lang::String *, ::java::lang::Throwable *);
  virtual ::java::lang::Throwable * getException();
  virtual ::java::lang::Throwable * getCause();
private:
  static const jlong serialVersionUID = 9176873029745254542LL;
  ::java::lang::Throwable * __attribute__((aligned(__alignof__( ::java::lang::ReflectiveOperationException)))) ex;
public:
  static ::java::lang::Class class$;
};

#endif // __java_lang_ClassNotFoundException__
