Package anvil.server

Source Code of anvil.server.JarLoader

/*
* $Id: JarLoader.java,v 1.3 2002/09/16 08:05:06 jkl Exp $
*
* Copyright (c) 2002 Njet Communications Ltd. All Rights Reserved.
*
* Use is subject to license terms, as defined in
* Anvil Sofware License, Version 1.1. See LICENSE
* file, or http://njet.org/license-1.1.txt
*/
package anvil.server;

import java.io.File;
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.jar.JarFile;
import java.util.jar.JarEntry;

/**
* class JarLoader
*
* @author: Jani Lehtim�ki
*/

public class JarLoader implements Loader
{

  private JarFile _jar;

  public JarLoader(File path) throws IOException
  {
    _jar = new JarFile(path);
  }

  public ClassData load(String name)
  {
    String filename = name + ".class";
    JarEntry entry = _jar.getJarEntry(filename);
    if (entry != null) {
      InputStream input = null;
      try {
        input = _jar.getInputStream(entry);
        int length = (int)entry.getSize();
        int offset = 0;
        byte[] data = new byte[length];
        while(offset < length) {
          int read = input.read(data, offset, length - offset);
          if (read == -1) {
            return null;
          }
          offset += read;
        }
        input.close();
        return new ClassData(name, data);
      } catch (IOException e) {
        return null;
      } finally {
        if (input != null) {
          try {
            input.close();
          } catch (IOException e) {
          }
        }
      }
    }
    return null;   
  }

}
TOP

Related Classes of anvil.server.JarLoader

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.