Этот совет Java иллюстрирует метод генерации манифест для файлов JAR. Входном потоке, используется для генерации манифеста. Манифест может быть сгенерированы из файла и из построены строку. Пример формата манифест может быть найдена по следующему адресу:
try {
// Generating a manifest from a file
InputStream input = new FileInputStream("filename");
Manifest manifest = new Manifest(input);
// Generating a string version of a manifest
StringBuffer sbuf = new StringBuffer();
sbuf.append("Manifest-Version: 1.0\n");
sbuf.append("\n");
sbuf.append("Name: javax/swing/JScrollPane.class\n");
sbuf.append("Java-Bean: True\n");
// string is converted to an input stream
InputStream is = new ByteArrayInputStream(sbuf.toString().getBytes("UTF-8"));
// Generating the manifest for the input stream
manifest = new Manifest(is);
} catch (IOException e) {
}
|
Вот пример из файла манифеста:
Manifest-Version: 1.0
Specification-Title: Java Platform API Specification
Specification-Version: 1.4
Implementation-Title: Java Runtime Environment
Implementation-Version: 1.4.0-rc
Created-By: 1.4.0-rc (Sun Microsystems Inc.)
Implementation-Vendor: Sun Microsystems, Inc.
Specification-Vendor: Sun Microsystems, Inc.
Name: javax/swing/JScrollPane.class
Java-Bean: True
Name: javax/swing/JCheckBoxMenuItem.class
Java-Bean: True
Name: javax/swing/JTabbedPane.class
Java-Bean: True
Name: javax/swing/JMenuItem.class
Java-Bean: True
Name: javax/swing/JTable.class
Java-Bean: True
|
|
Для воспроизведения звука из JAR файла (. АС файла в ЕАО должны быть доступны через CLASSPATH конечно!):
import java.io.*;
import java.net.*;
import sun.audio.*;
public class AppAudio {
public static void main(String args[]) throws Throwable {
InputStream in = AppAudio.class.getResourceAsStream(args[0]);
AudioStream as = new AudioStream(in);
AudioPlayer.player.start(as);
Thread.sleep(5000);
}
}
|
|