Applet in Website einbringen

Status
Nicht offen für weitere Antworten.

Developer_X

Top Contributor
So, also wenns net geht Applets auf dem Rechner zu starten, dann will ich es wenigstens versuchen dieses in eine HTML Datei einzubetten, kann mir dazu einer helfen?
Ich versuche euch alles so genau wie möglich zu geben
also seid net böse
//////////////////////////////////////////////////////////
//Hier ist eine meiner Klassen
[highlight=Java]
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import javax.swing.JButton;
import javax.swing.JTextArea;

public class Correct extends Applet
{
public Correct()
{
final File f = new File("Saves.txt");

this.setLayout(new BorderLayout());
JTextArea area = new JTextArea();area.setBackground(Color.black); area.setForeground(Color.cyan);area.setText("Aktueller Name: "+getContents(f));
this.add(area, BorderLayout.NORTH);area.setEnabled(false);
final JTextArea area2 = new JTextArea();area2.setBackground(Color.white); area2.setForeground(Color.cyan);area2.setText("Neuer Name");
this.add(area2, BorderLayout.CENTER);
JButton b = new JButton("Bestätigen");b.setBackground(Color.black); b.setForeground(Color.cyan);this.add(b,BorderLayout.SOUTH);
b.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
try {
setContents(f,area2.getText());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.exit(0);

}
});
}
static public String getContents(File aFile)
{
StringBuilder contents = new StringBuilder();
try {
BufferedReader input = new BufferedReader(new FileReader(aFile));
try {
String line = null;
while (( line = input.readLine()) != null){
contents.append(line);
}
}
finally {
input.close();
}
}
catch (IOException ex){
ex.printStackTrace();
}

return contents.toString();
}
static public void setContents(File aFile, String s)
throws FileNotFoundException, IOException {
if (aFile == null) {
throw new IllegalArgumentException("File should not be null.");
}
if (!aFile.exists()) {
throw new FileNotFoundException ("File does not exist: " + aFile);
}
if (!aFile.isFile()) {
throw new IllegalArgumentException("Should not be a directory: " + aFile);
}
if (!aFile.canWrite()) {
throw new IllegalArgumentException("File cannot be written: " + aFile);
}
Writer output = new BufferedWriter(new FileWriter(aFile));
try {
output.write( s );
}
finally {
output.close();
}
}
}

[/highlight]

[highlight=Java]import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Color;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

import javax.swing.JTextArea;

public class Help extends Applet
{
public Help()
{
this.setVisible(true);
this.setLayout(new BorderLayout());

File help = new File("Help.txt");
JTextArea a = new JTextArea();a.setBackground(Color.black); a.setEnabled(false);
a.setText(getContents(help));this.add(a,BorderLayout.SOUTH);
}
static public String getContents(File aFile)
{
StringBuilder contents = new StringBuilder();
try {
BufferedReader input = new BufferedReader(new FileReader(aFile));
try {
String line = null;
while (( line = input.readLine()) != null){
contents.append(line);
}
}
finally {
input.close();
}
}
catch (IOException ex){
ex.printStackTrace();
}

return contents.toString();
}
}
[/highlight]

[highlight=Java]import java.net.*;
import java.io.*;


class connection extends Thread
{
protected Socket client;
protected DataInputStream in;
protected PrintStream out;
protected chatserver server;

public connection(chatserver server, Socket client)
{
this.server=server;
this.client=client;

try
{
in = new DataInputStream(client.getInputStream());
out = new PrintStream(client.getOutputStream());
} catch (IOException e)
{
try { client.close(); } catch (IOException e2) {} ;
System.err.println("Fehler beim Erzeugen der Streams: " + e);
return;
}

this.start();
}


public void run()
{
String line;

try
{
while(true)
{
line=in.readLine();
if(line!=null)
server.broadcast(line);
}
} catch (IOException e)
{
System.out.println("Fehler:" + e);
}
}
}




[/highlight]

[highlight=Java]import java.net.*;
import java.io.*;
import java.util.*;


public class chatserver implements Runnable
{
public static final int PORT = 1;
protected ServerSocket listen;
protected Vector connections;
Thread connect;

public chatserver()
{
try
{
listen = new ServerSocket(PORT);
} catch (IOException e)
{
System.err.println("Fehler beim Erzeugen der Sockets:"+e);
System.exit(1);
}

connections = new Vector();

connect = new Thread(this);
connect.start();
}

public void run()
{
try
{
while(true)
{
Socket client=listen.accept();

connection c = new connection(this, client);
connections.addElement(c);
}
} catch (IOException e)
{
System.err.println("Fehler beim Warten auf Verbindungen:"+e);
System.exit(1);
}
}

public static void main(String[] args)
{
new chatserver();
}

public void broadcast(String msg)
{
int i;
connection you;

for (i=0; i<connections.size(); i++)
{
you = (connection) connections.elementAt(i);
you.out.println(msg);
}
}
}


[/highlight]

[highlight=Java]import java.applet.Applet;
import java.applet.AppletContext;
import java.applet.AppletStub;
import java.applet.AudioClip;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Event;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.net.MalformedURLException;
import java.net.Socket;
import java.net.URL;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.sound.sampled.AudioFormat.Encoding;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JTextArea;

import com.sun.j3d.utils.applet.MainFrame;

public class JavaChat_1 extends Applet implements Runnable
{

public static final int PORT = 1;
Socket socket;
DataInputStream in;
PrintStream out;
TextField inputfield;
TextArea outputarea;
Thread thread;
private static final long serialVersionUID = 4881953554409778241L;
private final HashMap<String, InputStream> appStreams = new HashMap<String, InputStream>();
private final HashMap<String, String> appParams = new HashMap<String, String>();

String name;

public JavaChat_1()
{

File f = new File("F:/FUTUR.PROGRAMS/Chat/Saves.txt");
name = getContents(f);
new chatserver();
inputfield = new TextField();
outputarea = new TextArea();
outputarea.setFont( new Font("Dialog", Font.PLAIN, 12));
outputarea.setEditable(false);

this.setLayout(new BorderLayout());
this.add("South", inputfield);
this.add("Center", outputarea);

this.setBackground(Color.cyan);
this.setForeground(Color.cyan);
inputfield.setBackground(Color.black);
outputarea.setBackground(Color.black);

JMenuBar bar = new JMenuBar();bar.setBackground(Color.black);this.add(bar,BorderLayout.NORTH);

JMenu m = new JMenu("Start");m.setForeground(Color.cyan);bar.add(m);

JMenuItem i = new JMenuItem("Benutzternamen ändern");i.setForeground(Color.cyan);i.setBackground(Color.black);m.add(i);
i.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
new MainFrame(new Correct(),200,250);
}
});


JMenuItem i1 = new JMenuItem("Beenden");i1.setForeground(Color.cyan);i1.setBackground(Color.black);m.add(i1);
i1.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
System.exit(0);
}
});

JTextArea a = new JTextArea();
a.setText(" Java_Chat_1.0");a.setEnabled(false); bar.add(a);a.setBackground(Color.black);

JMenu me = new JMenu("Hilfe");
me.setForeground(Color.cyan);
bar.add(me);

JMenuItem m1 = new JMenuItem("Hilfe aufrufen");
m1.setBackground(Color.black); m1.setForeground(Color.cyan);
me.add(m1);

m1.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
b1ActionPerformed(evt);
}
private void b1ActionPerformed(ActionEvent evt)
{
new MainFrame (new Help(),200,250);
}
});

}

public void start()
{
try
{
socket = new Socket(this.getCodeBase().getHost(), PORT);
in = new DataInputStream(socket.getInputStream());
out = new PrintStream(socket.getOutputStream());
} catch (IOException e)
{
this.showStatus(e.toString());
say("Verbindung zum Server fehlgeschlagen!");
}

say(name+" ist der ChatSitzung im Port:"+PORT+" beigetreten.");

if (thread == null)
{
thread = new Thread(this);
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
}
}


public void stop()
{
try
{
socket.close();
} catch (IOException e)
{
this.showStatus(e.toString());
}

if ((thread !=null) && thread.isAlive())
{
thread.stop();
thread = null;
}
}


public void run()
{
String line;

try
{
while(true)
{
line = in.readLine();
if(line!=null)
outputarea.appendText(line+'\n' );
}
} catch (IOException e) { say("Verbindung zum Server abgebrochen"); }
}

public boolean action(Event e, Object what)
{
if (e.target==inputfield)
{
String inp=(String)name+": "+ e.arg;

out.println(inp);
inputfield.setText("");
return true;
}

return false;
}


public void say(String msg)
{
outputarea.appendText("*** "+msg+" ***\n");
}

static public String getContents(File aFile)
{
StringBuilder contents = new StringBuilder();
try {
BufferedReader input = new BufferedReader(new FileReader(aFile));
try {
String line = null;
while (( line = input.readLine()) != null){
contents.append(line);
}
}
finally {
input.close();
}
}
catch (IOException ex){
ex.printStackTrace();
}

return contents.toString();
}
public static void main(String ... args)
{
final Frame f = new Frame("Hybrid Application Demo");
final JavaChat_1 applet = new JavaChat_1();
final Enumeration<Applet> appletEnum = new Enumeration<Applet>()
{
public boolean hasMoreElements()
{
return false;
}

public Applet nextElement()
{
return null;
}
};
final AppletContext context = new AppletContext()
{
public Applet getApplet(String name)
{
return null; // not in application mode
}

public Enumeration<Applet> getApplets()
{
return appletEnum;
}

public AudioClip getAudioClip(URL url)
{
try {
final Clip clip = AudioSystem.getClip();
AudioInputStream ais = AudioSystem.getAudioInputStream(url);
AudioFormat af = ais.getFormat();
if(Encoding.ALAW.equals(af.getEncoding())
|| Encoding.ULAW.equals(af.getEncoding())) {
af = new AudioFormat(
Encoding.PCM_SIGNED,
af.getSampleRate(),
af.getSampleSizeInBits() * 2,
af.getChannels(),
af.getFrameSize() * 2,
af.getFrameRate(),
true
);
ais = AudioSystem.getAudioInputStream(af, ais);
}
clip.open(ais);
return new AudioClip()
{
public void loop()
{
clip.loop(-1);
}

public void play()
{
clip.start();
}

public void stop()
{
clip.stop();
}
};
} catch(LineUnavailableException e) {
e.printStackTrace();
return null;
} catch(IOException e) {
e.printStackTrace();
return null;
} catch (UnsupportedAudioFileException e) {
e.printStackTrace();
return null;
}
}

public Image getImage(URL url)
{
return Toolkit.getDefaultToolkit().getImage(url);
}

public InputStream getStream(String key)
{
return applet.appStreams.get(key);
}

public Iterator<String> getStreamKeys()
{
return applet.appStreams.keySet().iterator();
}

public void setStream(String key, InputStream stream)
throws IOException
{
if(key != null && key.length() > 0) {
applet.appStreams.put(key, stream);
}
}

public void showDocument(URL url)
{
// no effect
}

public void showDocument(URL url, String target)
{
// no effect
}

public void showStatus(String status)
{
// no effect
}

};
AppletStub stub = new AppletStub()
{
public void appletResize(int width, int height)
{
}

public AppletContext getAppletContext()
{
return context;
}

public URL getCodeBase()
{
URL rc = JavaChat_1.class.getResource("HybridApplication.class");
return rc;
}

public URL getDocumentBase()
{
URL rc = JavaChat_1.class.getResource("HybridApplication.class");
if(rc.getProtocol().equalsIgnoreCase("jar")) {
try {
String tmp = rc.toString().substring(4, rc.toString().indexOf("!/"));
tmp = rc.toString().replaceAll("jar:", "").replaceAll("file:/", "file://");
tmp = tmp.substring(0, tmp.lastIndexOf("!/"));
rc = new URL(null, tmp);
} catch(MalformedURLException e) {
e.printStackTrace();
rc = null;
}
}
return rc;
}

public String getParameter(String name)
{
return applet.appParams.get(name);
}

public boolean isActive()
{
return f.isActive();
}

};
applet.setStub(stub);
if(args != null && args.length > 0) {
String[] pars;
for(String arg : args) {
pars = arg.split("=");
if(pars.length == 1) pars = new String[] {pars[0], "true"};
applet.appParams.put(pars[0].toLowerCase(), pars[1]);
}
}
f.setLayout(new GridLayout(1, 1, 0, 0));
String arg;
int width, height;
try {
width = ((arg = applet.getParameter("width")) != null)? Integer.parseInt(arg) : 800;
} catch(NumberFormatException e) {
width = 800;
}
try {
height = ((arg = applet.getParameter("height")) != null)? Integer.parseInt(arg) : 600;
} catch(NumberFormatException e) {
height = 600;
}
Dimension d = new Dimension(width, height);
applet.setPreferredSize(d);
applet.setSize(d);
f.addWindowListener(new WindowListener()
{
public void windowActivated(WindowEvent e)
{
applet.start();
}

public void windowClosed(WindowEvent e)
{
System.exit(0);
}

public void windowClosing(WindowEvent e)
{
applet.stop();
applet.destroy();
f.dispose();
}

public void windowDeactivated(WindowEvent e)
{
applet.stop();
}

public void windowDeiconified(WindowEvent e)
{
applet.start();
}

public void windowIconified(WindowEvent e)
{
applet.stop();
}

public void windowOpened(WindowEvent e)
{
}
});
applet.init();
f.add(applet);
f.pack();
f.setVisible(true);
}

}

[/highlight]

So nach diesem harten brocken etwas anderes
die TextDateien die von den Klassen "Help"
und "Help , Correct" bearbeitet werden,
sollen auf meine festplatte zugreifen,
um sie von meiner Festplatte zu verändern

kann mir einer nun eine HTML Datei zeigen,
mit der ich die Java Klasse "JavaChat_1.java" starten kann,
damit keine Missverständnisse entstehen,
bitte nur das die Java Datei gestartet wird, nicht mehr
ich kenn mich ein kleines bisschen mit HTML aus
hab schon selbst etwas gelernt,
von SELFHTML
aber ich möchte nur klar und deutlich dass diese Dateien gestartet werden
 

Developer_X

Top Contributor
als ob ich das nicht schon oft genug getestet hätte!
Aber nichts klappt,
kann mir einer im "
Code:
" (HTML)
zeigen wie ich das machen soll

So außerderm wo soll ich die website und die Java Klassen speichern?
Ich hab da was aber wenn ichs speichere gehts auch nicht
https://java-rayman.dev.java.net/servlets/ProjectDocumentList?expandFolder=0&folderID=0
 

ARadauer

Top Contributor
wie kommst du auf die idee, dass du auf
https://java-rayman.dev.java.net ein Applet einbauen kannst?

Erklär mir das bitte...

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<Applet code="chatapplet.class" width="200" height="200"></Applet>
</body>
</html>
wieso ist das klein geschrieben?
 

Developer_X

Top Contributor
ich hab dort schon einmal ein paar Websites eingefügt, "HTML" Dateien, und die konnte man auch dort im Internet starten, und da hatte ich mir gedacht, dann kann ich dort ja auch die JavaDateien speichern, und dort von der HTML aus
ja auch die Java Dateien starten, geht das?
wenn nicht, wie dann?
Kann die website im Internet auf den PC zugreifen, und die Java Dateien auf dem eigenen Rechner starten?
 

ARadauer

Top Contributor
Kann die website im Internet auf den PC zugreifen, und die Java Dateien auf dem eigenen Rechner starten?
ALTER!!!!!! stell dir das mal vor!! Irgend eine Internetseite startet Anwendungen auf deinem Rechern....

Hast du dir schon mal überlegt dass du eigentlich die HTML Datei im Browser anschaust? Lokal, ohne Webserver...

Also kopier die class Datei nach c:\test kopier die html Datei nach c:\test und öffne die html datei einfach mit dem Browser... warum kopierst du das gleich auf die java seite?
 

Leroy42

Top Contributor
Kann die website im Internet auf den PC zugreifen, und die Java Dateien auf dem eigenen Rechner starten?

Nein! Das geht definitiv nicht!


ich hab dort schon einmal ein paar Websites eingefügt, "HTML" Dateien, und die konnte man auch dort im Internet starten, und da hatte ich mir gedacht, dann kann ich dort ja auch die JavaDateien speichern, und dort von der HTML aus ja auch die Java Dateien starten, geht das?

Im Prinzip schon; wenn du die class-Dateien (oder eine JAR-Datei) dort hochladen
kannst (in das gleiche Server-Verzeichnis) sollte das klappen. :)
 

ARadauer

Top Contributor
ich denk schon, dass er es übers internet starten will. aber bevor es lokal gar nicht geht.. würd ich mal versuchen es lokal laufen zu lassen... dann ist wenigstes mal die html fehlerquelle ausgeschlossen...
 

Leroy42

Top Contributor
Zwar OT aber auch egal! :D

Hallo, ich merke gerade, daß die Angabe der Post-Uhrzeiten um 2 Stunden
zu niedrig ist. :shock:

(Irgendwer/-was zieht wahrscheinlich 1 Stunde ab, anstatt eine
d'rauf zu addieren)

Weiß jemand, wie ich das beheben kann? (Oder ist es doch
eine java-forum.org - Server-Angelegenheit?

(Also mein PC hat die richtige Uhrzeit)
 

Leroy42

Top Contributor
Doch, das geht.
Probiere mal das aus, wenn du einen WindowsXP-PC benutzt: SystemShutdown-Applet
Da startet ein Applet ein Windows-Programm, wenn du das Zertifikat akzeptierst.

Zertifikat akzeptieren? Mir zu umständlich! :noe:

Ich klicke lieber auf "Start / Computer ausschalten..." :D


In deinem Kontrollzentrum, ziemlich weit unten, solltest du mal die Einstellung Datum & Uhrzeit korrigieren: Kontrollzentrum

Danke! Bei mir war dort "Westeuropäische Zeit: :London..." eingestellt.

Damit: "/EndeOT" und abwarten, wie Developer_X weiter klar kommen wird :D
 

Developer_X

Top Contributor
So, genau zuhören:
Ich habe jetzt in folgendem Ordner:
F:/HTML_TEST/
diese angegebenen Dateien, die ich am Anfang erwähnt hatte mithilfe einer kleinen BATCH DATEI zu
Class Dateien gemacht:
dann habe ich in der HTML Datei folgendes gemacht:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<Applet code="JavaChat_1.class" width="200" height="200"></Applet>

</html>
Und dann öffnet sich ja immer so eine Konsole, wenn ihr versteht was ich meine, und dann passierte das:
Code:
Java Plug-in 1.6.0_13
Verwendung der JRE-Version 1.6.0_13 Java HotSpot(TM) Client VM
Home-Verzeichnis des Benutzers = C:\Users\Kevin Riehl

----------------------------------------------------
c:   Konsole löschen
f:   Objekte in Finalisierungswarteschlange finalisieren
g:   Speicherbereinigung
h:   Diese Hilfemeldung anzeigen
l:   ClassLoader-Liste ausgeben
m:   Speicherbelegung anzeigen
o:   Protokollierung auslösen
q:   Konsole ausblenden
r:   Richtlinien-Konfiguration neu laden
s:   System- und Bereitstellungseigenschaften ausgeben
t:   Threadliste ausgeben
v:   Thread-Stack ausgeben
x:   ClassLoader-Cache löschen
0-5: Trace-Stufe auf <n> setzen
----------------------------------------------------

java.security.AccessControlException: access denied (java.io.FilePermission F:\FUTUR.PROGRAMS\Chat\Saves.txt read)
	at java.security.AccessControlContext.checkPermission(Unknown Source)
	at java.security.AccessController.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkPermission(Unknown Source)
	at java.lang.SecurityManager.checkRead(Unknown Source)
	at java.io.FileInputStream.<init>(Unknown Source)
	at java.io.FileReader.<init>(Unknown Source)
	at JavaChat_1.getContents(JavaChat_1.java:217)
	at JavaChat_1.<init>(JavaChat_1.java:70)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Ausnahme: java.security.AccessControlException: access denied (java.io.FilePermission F:\FUTUR.PROGRAMS\Chat\Saves.txt read)
 
Zuletzt bearbeitet:

Ebenius

Top Contributor
Ganz genau lesen!

"So eine Konsole" ist die "Java Console".

Normale Applets laufen in aller Regel in einer abgesicherten Java-Maschine. Eine solche Java-Maschine hat einen SecurityManager. Die Standard-Implementierung (bei jedem nackeligen Sun-Java im Browser wird diese benutzt) liest dazu eine Policy-Datei aus und in dieser Datei steht drin, was das Applet darf und was nichts. Wenn der Nutzer (bzw. der Administrator) des Client-Systems die Policy-Datei nicht verändert, darf das Applet nichts was sicherheitskritisch ist: Dateien schreiben, auf die Zwischenablage zugreifen, Netzwerkverbindungen an beliebige Adressen öffnen. Und so weiter.

"Normale" Applets sind Applets die unsigniert sind. Man kann Applets auch signieren, dann muss der Benutzer (einmal oder jedes mal, ganz wie er entscheidet oder sein Admin vorentschieden hat) zustimmen, dass er dem Anbieter des Applets vertraut und ihm die erwünschten Rechte erlaubt.

Um herauszufinden, wie man ein Applet signiert, kannst Du erstmal die Forensuche bemühen.

Viel Erfolg!

Ebenius
 

Developer_X

Top Contributor
Code:
@echo off
rem * SignTool by L-ectron-X ( www.byte-welt.de )
rem *
rem * Ablauf beim Signieren
rem *
rem * Erzeugen eines eigenen Schlüssels
rem * Mit KeyTool, einem Werkzeug aus dem SDK, einen neuen Schlüssel erzeugen:
rem * keytool -genkey -alias Signer -dname "cn=Dein Name, c=de"
rem * Gib anschließend Dein Passwort ein.
rem 
rem * Erzeugen eines Zertifikats
rem * Mit KeyTool Zertifikat erzeugen:
rem * keytool -selfcert -alias Signer -dname "cn=Dein Name, c=de"
rem * Gib anschließend dein Passwort ein.
rem * 
rem * Signieren des Applets
rem * Signieren des Applets mit Hilfe des Tools jarsigner
rem * jarsigner signed.jar Signer
rem * Und noch einmal dein Passwort eingeben.

echo = SignTool =
echo Dieses Tool hilft beim Erzeugen von signierten jar-Dateien
echo.
echo Schritt 1: jar-Dateien erzeugen
echo -------------------------------

rem Pfad zum SDK setzen 
rem --> anpassen!
set path=.;C:\Programme\Java\jdk1.5.0\bin

echo Manifestdatei erzeugen...
echo Manifest-Version: 1.0>manifest.mf 
echo Created-by: SignTool by L-ectron-X>>manifest.mf 
echo.>>manifest.mf

if exist *.jar goto key
echo jar-Datei mit angegebenen Parametern erzeugen...
rem --> anpassen!
rem * In diesem Beispiel werden alle .class-Dateien und die Verzeichnisse bilder und etc
rem * mit ins jar-Archiv gepackt.
jar cfmv MeinJar.jar manifest.mf [highlight]*.class bilder etc[/highlight]

:key
echo.
echo Schritt 2: Schluessel generieren
echo --------------------------------
rem --> anpassen!
keytool -genkey -alias Signer -dname "cn=Dein Name, c=de"

echo.
echo Schritt 3: Zertifikat erzeugen
echo ------------------------------
rem --> anpassen!
rem -validity 18250 (365 Tage x 50) erzeugt ein 50 Jahre gültiges Zertifikat
keytool -selfcert -validity 3650 -alias Signer -dname "cn=Dein Name, c=de"

if not exist *.jar goto error
echo.
echo Schritt 4: jar-Datei signieren
echo ------------------------------
echo jarsigner erwartet hier nochmals dein Passwort.
rem --> anpassen!
jarsigner MeinJar.jar Signer

echo.
echo Schritt 5: Zertifikat testen
echo ----------------------------
rem --> anpassen!
jarsigner -verify -verbose -certs MeinJar.jar
goto end

:error
echo.
echo Es wurde keine jar-Datei zum Signieren gefunden.
echo Die Erzeugung der jar-Datei ist moeglicherweise fehlgeschlagen.
echo Pruefe deine Eingaben in der Batchdatei!

:end
if not exist manifest.mf goto console
echo.
rem Manifest von Festplatte löschen 
del manifest.mf

:console
rem Console für Ausgaben noch geöffnet lassen
echo.
pause
so wie es hier steht
http://www.java-forum.org/java-faq-beitraege/16717-applets-und-webstart-anwendungen-signieren.html
signiert man applets

aber ich kapier net was mit dem rot markiertem Text gemeint ist
 

faetzminator

Gesperrter Benutzer
also, zwei Zeilen oben dran steht
"rem * In diesem Beispiel werden alle .class-Dateien und die Verzeichnisse bilder und etc
rem * mit ins jar-Archiv gepackt."

und die rote Stelle ist
"*.class bilder etc"

was ist damit wohl gemeint?
 

L-ectron-X

Gesperrter Benutzer
rem * In diesem Beispiel werden alle .class-Dateien und die Verzeichnisse bilder und etc
was verstehst du daran nicht? Zu missverständlich?

Es werden in diesem Beispiel mit dem darauf folgenden Befehl alle .class-Dateien, die sich im gleichen Verzeichnis wie die Batchdatei befinden und die für dieses Beispiel fiktiv erzeugten Unterverzeichnisse samt Inhalte in die von der Batchdatei zu erzeugende Jar-Datei gepackt.
Die Batchdatei erzeugt also eine Jar-Datei aus den von dir angegebenen Bytecode-Dateien und Unterverzeichnissen und signiert diese im Anschluss.
Genauso gut könntest du auch nur .class-Dateien verpacken. Ganz, wie du es brauchst.
Wenn du schon eine Jar-Datei hast, kannst du diese auch einfach nur signieren lassen. Dann musst du die entsprechenden Zeilen der Batchdatei auskommentieren.
 

Ark

Top Contributor
also muss ich da nichts ändern?
oder kann mir das irgendjemand nochmal erkläre?
Das sind ganz normale Zugriffe aufs Dateisystem. Was also verstehst du daran nicht? Du wirfst mit Java3D, Applets und Wunder was für Sachen um dich, aber beherrschst nicht einmal die Zugriffsregeln auf verzeichnisbasierte Dateisysteme?

Wie erbärmlich ...

Ark
 

L-ectron-X

Gesperrter Benutzer
moment, ich habe keine keystore datei
Die wird dir im Verlauf der Signierung in deinem Benutzerverzeichnis auf deinem Rechner angelegt. Solltest du irgendwann wieder eimal signieren, musst du dir das Passwort merken, dann wird die bestehende .keystore-Datei verwendet.
Hast du das Passwort vergessen, kannst du so lange keine Jar-Datei signieren, bis du diese Datei aus deinem Benutzerverzeichnis gelöscht hast.
 

Ebenius

Top Contributor
Developer_X, weißt Du, was ein JAR ist? Wenn nicht, dann lies Dich mal ein. Da gibt's tonnenweise Erklärungen die ich nicht gern abtippe. :)

Das was rot markiert ist ist das was ins JAR rein muss. Einfach ein bisschen lesen. Ich persönlich schaue gern bei java.sun.com und nutze dort die Suche. Auf die Tutorials bist Du schon oft verwiesen worden.

// Nachtrag: Da hab ich doch mal wieder die Seite 2 nicht gesehen, wollte grad meinen Beitrag löschen und stelle fest: sechs Beiträge später passt der immer noch. :bahnhof:

Ebenius
 
Zuletzt bearbeitet:

ARadauer

Top Contributor
das letzte was ich jemals tun würde ist das Zertifikat eines von Developer_X signierten Applet zu akzeptieren... ;-)


@Developer_X: warum verschwendest du eigentlich so viel zeit für deinen chat? Da wird sich niemals jemand unterhalten... um einen chat am laufen zu halten brauchst du extrem viele benutzer auf der seite..
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Daten von Applet an Website Java Basics - Anfänger-Themen 4
M Java-Applet zur Mittelwertberechnung Java Basics - Anfänger-Themen 3
D Java Applet wird nicht im Browser angezeigt Java Basics - Anfänger-Themen 6
M bestehendes Projekt als Applet speichern Java Basics - Anfänger-Themen 2
S Erste Schritte Java - Applet - Rechteck ständig versetzen Java Basics - Anfänger-Themen 14
A Applet Plot für atan erstellen Java Basics - Anfänger-Themen 1
S Erste Schritte Java Applet lässt sich im Browser nicht öffnen Java Basics - Anfänger-Themen 9
K JDK installieren displays java applet für MAC Java Basics - Anfänger-Themen 10
S Zeichen von abgerundeten Rechtecken auf einem Applet Java Basics - Anfänger-Themen 5
J Einfache einbindung eines Bildes in ein Applet Java Basics - Anfänger-Themen 4
S Klassen Applet extern aufrufen Java Basics - Anfänger-Themen 1
J Erstes Applet läßt sich nicht anzeigen Java Basics - Anfänger-Themen 2
C Applet Probleme Java Basics - Anfänger-Themen 1
A Compiler-Fehler Problem beim einbinden der applet Klasse Java Basics - Anfänger-Themen 2
M Erste Schritte Java Applet - HTML Seiten auslesen und in Access Datenbank schreiben? Java Basics - Anfänger-Themen 15
G Applet in ein JSP einbinden Java Basics - Anfänger-Themen 1
C Java-Applet Fehler "NoClassDefFoundError"? Java Basics - Anfänger-Themen 1
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
C Kalender in Applet einfügen Java Basics - Anfänger-Themen 0
J JavaScript findet Applet Methode nicht Java Basics - Anfänger-Themen 2
J Punkte im Java-Applet verbinden Java Basics - Anfänger-Themen 4
D Bild im Applet anzeigen Java Basics - Anfänger-Themen 3
V Text aus einer .txt dynamisch ins applet einpassen Java Basics - Anfänger-Themen 0
K Applet funz. im Browser nicht Java Basics - Anfänger-Themen 11
M Java-Applet: Bild einbinden (getImage) Java Basics - Anfänger-Themen 0
thet1983 Erste Schritte <param> Tag in Applet Java Basics - Anfänger-Themen 4
F Swing Applet: mehrere Komponenten hinzufügen Java Basics - Anfänger-Themen 1
F Platzieren von Komponenten in Swing Applet funktioniert nicht Java Basics - Anfänger-Themen 3
G Signiertes Applet wird nicht ausgeführt Java Basics - Anfänger-Themen 1
Y Applet: Verschlüsselung Java Basics - Anfänger-Themen 3
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
F signiertes Applet fkt. nicht bei lokalem Aufruf Java Basics - Anfänger-Themen 2
K Frage zu Applet Java Basics - Anfänger-Themen 3
V While Schleife für ganzes Applet Java Basics - Anfänger-Themen 6
P Applet Histogramm Java Basics - Anfänger-Themen 6
H 27 Kreise Zeichnen Java Applet Java Basics - Anfänger-Themen 2
G Java Applet aus Eclipse heraus testen? Java Basics - Anfänger-Themen 6
S Applet findet Klasse nicht Java Basics - Anfänger-Themen 7
R Java Applet mit Mausklick ansprechen Java Basics - Anfänger-Themen 3
C Java Applet in html. Pong - old school Spiel Java Basics - Anfänger-Themen 10
S Applet-Objekt ist vor dem Hintergrund Java Basics - Anfänger-Themen 11
F Problem mit Applet Java Basics - Anfänger-Themen 5
A Applet mit Object-Tags einbinden. Java Basics - Anfänger-Themen 3
S Erste Schritte Fenster wechsel im Applet Java Basics - Anfänger-Themen 7
S Applet Deployment Java Basics - Anfänger-Themen 2
X Applet Fehler: java.lang.reflect.InvocationTargetException Java Basics - Anfänger-Themen 45
H Applet - main()-Methode Java Basics - Anfänger-Themen 4
K Applet wird nicht im Browser und Appletviewer angezeigt Java Basics - Anfänger-Themen 5
L Applet : keine Recht für Zugriff auf Clipboard (trotz Zertifikat) Java Basics - Anfänger-Themen 4
N Erste Schritte Applet zeichnet Bild nicht Java Basics - Anfänger-Themen 10
H Klassen in Eclipse stellt es im Ausgabe-Applet nicht dar Java Basics - Anfänger-Themen 5
L Applet soll Html-File öffnen Java Basics - Anfänger-Themen 2
L NetBeans Applet in html Java Basics - Anfänger-Themen 4
Dogge Start:Applet nicht Initialisiert Java Basics - Anfänger-Themen 11
D Applet beenden Java Basics - Anfänger-Themen 7
Dogge Problem mit paint(Graphics g) im Applet Java Basics - Anfänger-Themen 13
M RSA Applet ohne Cipher Java Basics - Anfänger-Themen 15
B String verschlüsseln - Applet - ohne BASE64 Java Basics - Anfänger-Themen 7
S Methode in Applet starten Java Basics - Anfänger-Themen 2
M AWT Applet - Button aus anderer Klasse abfragen Java Basics - Anfänger-Themen 4
W Probleme mit Java Applet Java Basics - Anfänger-Themen 5
M Applet kann in Browser nicht ausgeführt werden Java Basics - Anfänger-Themen 4
L Applet: Laden unterbricht den Browserfokus (scrollen) Java Basics - Anfänger-Themen 2
Z Applet startet nicht bei Domain mit Umlaut Java Basics - Anfänger-Themen 2
B Externe Libraries fuer Applet ... Pfad eingeben? Java Basics - Anfänger-Themen 23
Helgon ClassNotFound Applet Java Basics - Anfänger-Themen 6
U Applet Signiert und trotzdem Fehlermeldung Java Basics - Anfänger-Themen 18
E Schach in Java-Applet <No main classes found> Java Basics - Anfänger-Themen 5
S Applet Java Basics - Anfänger-Themen 2
S [Applet] Objekte von init bei paint benutzen Java Basics - Anfänger-Themen 9
E Applet wird nicht angezeigt Java Basics - Anfänger-Themen 11
P Problem- Java Applet wird nicht ausgeführt Java Basics - Anfänger-Themen 9
B Applet - Laden eines Java-Fensters bricht ab Java Basics - Anfänger-Themen 6
N Import Problem, Applet will nicht Java Basics - Anfänger-Themen 6
M Applet Eclipse Vollbild Java Basics - Anfänger-Themen 3
K Befehl per Shell an Java-Applet JAR übergeben Java Basics - Anfänger-Themen 16
I Java Applet Java Basics - Anfänger-Themen 8
D Java Applet Dateien auf Server auslesen? Java Basics - Anfänger-Themen 8
L Referenced Libraries korrekt in Java Applet einbinden.. Java Basics - Anfänger-Themen 2
KBJ Java Applet Gästebuch Java Basics - Anfänger-Themen 12
T Java Applet braucht mehrere Minuten zu Start Java Basics - Anfänger-Themen 5
U Applet wird nicht angezeigt Java Basics - Anfänger-Themen 2
J J-Applet, Frage Java Basics - Anfänger-Themen 19
J Applet farblich gestalten Java Basics - Anfänger-Themen 5
M Applet lokaler Festplattenzugriff Java Basics - Anfänger-Themen 25
X Applet - Client/Server Java Basics - Anfänger-Themen 2
M Applet ist nur graues Feld Java Basics - Anfänger-Themen 12
O webserver für Applet und php Java Basics - Anfänger-Themen 7
J Fehlermeldung: Applet nicht initialisiert Java Basics - Anfänger-Themen 24
C Java Applet Probleme Java Basics - Anfänger-Themen 4
S Probleme mit Java 3D Tutorial (Applet) Java Basics - Anfänger-Themen 7
S Input/Output Problem mit dateizugriff innerhalb der .jar (Applet) Java Basics - Anfänger-Themen 2
M Applet + BilderDownload Java Basics - Anfänger-Themen 36
O Applet Wetterticker Java Basics - Anfänger-Themen 17
W KeyListener auf Applet mit Runnable Java Basics - Anfänger-Themen 4
M Bild in Applet darstellen Java Basics - Anfänger-Themen 6
W Applet funktiniert nur in Eclipse Java Basics - Anfänger-Themen 2
S Erste Schritte Machbarkeit: Applet oder GUI-Applikation? Java Basics - Anfänger-Themen 3
A Linie Zeichnen Applet mit Double Wert Java Basics - Anfänger-Themen 3
O (von Applet) daten an Server übergeben Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben