title: method init()v not found
body: <p>I'm rewriting an applet I have, but when it loads it's giving me a runtime exception.
  The exception is</p>
  
  <pre><code>Exception in thread "main" java.lang.NoSuchMethodError: ClientSettings: method &lt;
  init&gt;()V not found
          at RunClient.&lt;init&gt;(RunClient.java:41)
          at RunClient.main(RunClient.java:63)
  </code></pre>
  
  <p>Here is RunClient:</p>
  
  <pre><code>import java.applet.Applet;
  import java.awt.BorderLayout;
  import java.awt.Container;
  import java.awt.Desktop;
  import java.awt.Dimension;
  import java.awt.Rectangle;
  import java.awt.Robot;
  import java.awt.Toolkit;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
  import java.awt.image.BufferedImage;
  import java.io.File;
  import java.io.FilenameFilter;
  import java.io.IOException;
  import java.net.URI;
  import java.net.URISyntaxException;
  import java.net.URL;
  import java.util.Properties;
  
  import javax.imageio.ImageIO;
  import javax.swing.JFrame;
  import javax.swing.JMenu;
  import javax.swing.JMenuBar;
  import javax.swing.JMenuItem;
  import javax.swing.JOptionPane;
  import javax.swing.JPanel;
  import javax.swing.JPopupMenu;
  import javax.swing.JSeparator;
  
  
  public class RunClient extends Applet implements ActionListener {
  
      private Robot robot;
      private static final long serialVersionUID = 1L;
      public static Properties params = new Properties();
      public JFrame mainFrame;
      public JPanel mainPane = new JPanel();
      public static String[] data;
      public String mainurl = getParameter("ip");
      public int lang = 0;
      public String frameName = getParameter("servername");
      public JPanel totalPanel;
      private JMenuBar menuBar = new JMenuBar();
      private int capNum;
      private FilenameFilter filter = new FilenameFilter() {
  
          @Override
          public boolean accept(File arg0, String arg1) {
              if (arg0.getName().equals("images") &amp;&amp; arg1.endsWith("png")) {
                  return true;
              }
              return false;
          }
  
      };
      public static final Object[][] JMENU_BUTTONS = new Object[][]{{"File", new JMenuItem("New Client"), new JSeparator(), new JMenuItem("Exit")}, {"Guides", new JMenuItem("Getting Started"), new JMenuItem("Fighting Monsters"), new JMenuItem("Money Making")}, {"Links", new JMenuItem("Wiki"), new JMenuItem("Forums"), new JMenuItem("Youtube"), new JMenuItem("Donate")}, {"Tools", new JMenuItem("Take a screenshot")}};
      public String[] getLoaderParameters() {
          return new String[]{getParameter("servername"), getParameter("ip"), getParameter("port")};
      }
      public static void main(String[] strings) {
          data = getLoaderParameters();
          new ClientSettings(data);
          RunClient runclient = new RunClient();
          runclient.doFrame();
      }
  
      public RunClient() {
          try {
              loadCaptureAmts();
              robot = new Robot();
          } catch(Exception e) {
              e.printStackTrace();
          }
      }
  
      private void loadCaptureAmts() {
          capNum = new File("./images/").listFiles(filter).length;
      }
  
      public void init() {
          doApplet();
      }
  
      void doApplet() {
          try {
              readVars();
              startClient();
          } catch (Exception exception) {
              exception.printStackTrace();
          }
      }
  
      public void doFrame() {
          try {
              readVars();
              openFrame();
              startClient();
          } catch (Exception exception) {
              exception.printStackTrace();
          }
      }
  
      public void readVars() throws IOException {
          params.put("cabbase", "g.cab");
          params.put("java_arguments", "-Xmx1024m -Dsun.java2d.noddraw=true");
          params.put("colourid", "0");
          params.put("worldid", "16");
          params.put("lobbyid", "15");
          params.put("demoid", "0");
          params.put("demoaddress", "");
          params.put("modewhere", "0");
          params.put("modewhat", "0");
          params.put("lang", "0");
          params.put("objecttag", "0");
          params.put("js", "1");
          params.put("game", "0");
          params.put("affid", "0");
          params.put("advert", "1");
          params.put("settings", "wwGlrZHF5gJcZl7tf7KSRh0MZLhiU0gI0xDX6DwZ-Qk");
          params.put("country", "0");
          params.put("haveie6", "0");
          params.put("havefirefox", "1");
          params.put("cookieprefix", "");
          params.put("cookiehost", "127.0.0.1");
          params.put("cachesubdirid", "0");
          params.put("crashurl", "");
          params.put("unsignedurl", "");
          params.put("sitesettings_member", "1");
          params.put("frombilling", "false");
          params.put("sskey", "");
          params.put("force64mb", "false");
          params.put("worldflags", "8");
          params.put("lobbyaddress", mainurl);
      }
  
      public void openFrame() {
          JPopupMenu.setDefaultLightWeightPopupEnabled(false);
          mainPane.setLayout(new BorderLayout());
          mainPane.add(this);
          mainPane.setPreferredSize(new Dimension(765, 503));
          totalPanel = new JPanel();
          totalPanel.setPreferredSize(new Dimension(765, 503));
          totalPanel.setLayout(new BorderLayout());
          totalPanel.add(mainPane, BorderLayout.CENTER);
          mainFrame = new JFrame(frameName);
          mainFrame.setLayout(new BorderLayout());
          mainFrame.getContentPane().add(totalPanel, BorderLayout.CENTER);
          mainFrame.setDefaultCloseOperation(3);
          //setMenuBar();
          mainFrame.pack();
          mainFrame.setVisible(true);
      }
  
      private void setMenuBar() {
          int id = 0;
          for (int y = 0; y &lt; JMENU_BUTTONS.length; y++) {
              JMenu menu = new JMenu();
              for (int i = 0; i &lt; JMENU_BUTTONS[y].length; i++) {
                  if (i == 0) {
                      menu.setText((String) JMENU_BUTTONS[y][i]);
                  } else if (JMENU_BUTTONS[y][i] instanceof JMenuItem){
                      JMenuItem item = (JMenuItem) JMENU_BUTTONS[y][i];
                      menu.add(item);
                      item.setActionCommand(""+ id++);
                      item.addActionListener(this);
                  } else {
                      menu.add((JSeparator) JMENU_BUTTONS[y][i]);
                  }
              }
              menuBar.add(menu);
          }
          mainFrame.setJMenuBar(menuBar);
  
      }
  
      public void startClient() {
          try {
              //RuntimeLoader loader = new RuntimeLoader();
              //Class clientclass = loader.loadClass("client");
  
              //Applet clientApplet = (Applet) clientclass.newInstance();
              //clientclass.getMethod("provideLoaderApplet",
              //      new Class[] { java.applet.Applet.class }).invoke(null,
              //              new Object[] { this });
              //clientApplet.init();
              //clientApplet.start();
              client.provideLoaderApplet(this);
              client var_client = new client();
              var_client.init();
              var_client.start();
          } catch (Exception exception) {
              exception.printStackTrace();
          }
      }
  
  
      public URL getDocumentBase() {
          return getCodeBase();
      }
  
      public URL getCodeBase() {
          URL url;
          try {
              url = new URL(new StringBuilder().append("http://").append(mainurl)
                      .toString());
          } catch (Exception exception) {
              exception.printStackTrace();
              return null;
          }
          return url;
      }
  
      @Override
      public void actionPerformed(ActionEvent e) {
          switch (Integer.parseInt(e.getActionCommand())) {
          case 1:
              if (JOptionPane.showConfirmDialog(this, "Are you sure you want to quit?") == 0)
                  System.exit(0);
              break;
          case 2:
              browse("http://dementhium.wikia.com/wiki/Getting_Started");
              break;
          case 3:
              browse("http://forums.dementhium.com/showthread.php?t=143");
              break;
          case 4:
              browse("http://dementhium.wikia.com/wiki/Dementhium_Wiki");
              break;
          case 5:
              browse("http://dementhium.wikia.com/wiki/Dementhium_Wiki");
              break;
          case 6:
              browse("http://forums.dementhium.com/");
              break;
          case 7:
              browse("http://www.youtube.com/DementhiumOfficial");
              break;
          case 8:
              browse("http://forums.dementhium.com/payments.php");
              break;
          case 9:
              writeImage(robot.createScreenCapture(getGameScreenRectangle()));
              break;
          default:
              System.out.println(Integer.parseInt(e.getActionCommand()));
          }
  
      }
  
      private Rectangle getGameScreenRectangle() {
          Rectangle rect = getBounds();
          rect.setLocation(this.getLocationOnScreen());
          return rect;
      }
  
      private void writeImage(BufferedImage createScreenCapture) {
          try {
              ImageIO.write(createScreenCapture, "PNG", new File("./images/capture-" + capNum++ + ".png"));
          } catch (IOException e) {
              e.printStackTrace();
          }
  
      }
  
      private void browse(String string) {
          if (Desktop.isDesktopSupported() &amp;&amp; Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
              try {
                  Desktop.getDesktop().browse(new URI(string));
              } catch (IOException e1) {
                  e1.printStackTrace();
              } catch (URISyntaxException e1) {
                  e1.printStackTrace();
              }
          }
  
      }
  
  }
  </code></pre>
  
  <p>and here is ClientSettings.java, this is called from various files, args is always defined using</p>
  
  <pre><code>public String[] data;
  </code></pre>
  
  <p>in RunClient</p>
  
  <pre><code>public class ClientSettings {
      public int PORT;
      public String IPADDRESS;
      public String SERVERNAME;
      public ClientSettings(String[] args) {
          PORT = Integer.parseInt(args[2]);
          IPADDRESS = args[1];
          SERVERNAME = args[0];
  
  
      }
      }
  </code></pre>