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

#ifndef __java_lang_ClassNotFoundException__
#define __java_lang_ClassNotFoundException__

#pragma interface

#include <java/lang/Exception.h>

class java::lang::ClassNotFoundException : public ::java::lang::Exception
{

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::Exception)))) ex;
public:
  static ::java::lang::Class class$;
};

#endif // __java_lang_ClassNotFoundException__
