.class variabel laden

Status
Nicht offen für weitere Antworten.
K

Killi138

Gast
Hi Leute, ich hoffe ihr könnt mir helfen!

Ich habe ein Java Applet...nun greifen ein paar Kunden auf eine URL auf meinem Server zu, hier steht der applet-code:


Code:
<applet code="http://www.domain.de/getClass.php?kid=123" archive="golden_0_2_3.jar" width="740" height="417">
</applet>


das golden_0_2_3.jar ist meine Golden Game Engine, diese tut nichts zur Sache.

Ich will nun, dass mir die PHP-Datei die gewünschte .class zurückgibt.....denn der Kunde mit der id 12 will eine Einzelspielerversion und der Kunde mit der id 123 will Mehrspielerversion mit seiner eigenen Werbung....

Versteht ihr was ich meine?



Wie bekomme ich das hin?

Habe schon ewig am PHP-Script rumgetüftelt, nichts hilft....



Wenn ich wirklich nur

Code:
<?php
   if ($id == 12) {
     header("Location: ping/Ping1.class");
   }
   else if ($id == 123) {
      header("Location: ping/Ping2.class");
   }
?>


als getClass.php habe, dann gibt es mir eine NullPointerException dass die Klasse domain.de.getClass.php nicht geöffnet werden konnte!
Rufe ich die Datei allerdings direkt im Browser auf, gibt sie mir die class zurück....


....was tun???
 

Bleiglanz

Gesperrter Benutzer
is doch völliger Quatsch was du machst

im code Attribut steht TEXT

Code:
<applet code="<?php
   if ($id == 12) {
     echo("ping.Ping1.class");
   }
   else if ($id == 123) {
      echo("ping.Ping2.class");
   } 

?>" archive="golden_0_2_3.jar" width="740" height="417">
</applet>
denk mal drüber nach
 
K

Killi138

Gast
Hab ich doch versucht!!!

Wenn ich in der PHP nur schreibe:

Code:
<?php
   echo "ping/Ping.class";
?>

bekomm ich TROTZDEM folgende Meldungen (auch wenn ich in der PHP header('Content-type: text'); setze!!!):



Laden: Klasse http://www.killinger-it.com/files/testphp/test.php nicht gefunden
java.lang.ClassNotFoundException: http:..www.killinger-it.com.files.testphp.test.php
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed.
at sun.applet.AppletClassLoader.getBytes(Unknown Source)
at sun.applet.AppletClassLoader.access$100(Unknown Source)
at sun.applet.AppletClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 10 more
Exception in thread "Thread-4" java.lang.NullPointerException
at sun.plugin.util.GrayBoxPainter.showLoadingError(Unknown Source)
at sun.plugin.AppletViewer.showAppletException(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
at sun.plugin.util.GrayBoxPainter.showLoadingError(Unknown Source)
at sun.plugin.AppletViewer.showAppletStatus(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception in thread "thread applet-http://www.killinger-it.com/files/testphp/test.php" java.lang.NullPointerException
at sun.plugin.util.GrayBoxPainter.showLoadingError(Unknown Source)
at sun.plugin.AppletViewer.showAppletException(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
 

Campino

Top Contributor
Nein, kannst denn Code nicht über die html-Datei senden sondern musst in das Attribute den Namen der Klasse schreiben, die du brauchst. Du musst also mit einer php-if-Abfrage feststellen für welches Applet du den Tag brauchst...
 

Bleiglanz

Gesperrter Benutzer
Killi138 hat gesagt.:
Hab ich doch versucht!!!

Wenn ich in der PHP nur schreibe:

Code:
<?php
   echo "ping/Ping.class";
?>

bekomm ich TROTZDEM folgende Meldungen (auch wenn ich in der PHP header('Content-type: text'); setze!!!):
Du sollst das nicht in einer externen Datei schreiben

sondern

IM APPLET TAG

ODER

dein php-skript ist so programmiert, dass es den Byte-Code der entprechenden Java Klasse zurückschickt
 
G

Gast

Gast
...sondern musst in das Attribute den Namen der Klasse schreiben, die du brauchst...

Das hab ich ja mit echo "ping/ping.class"; versucht...


@Bleiglanz:

Ich muss eine externe PHP verwenden!
Wenn du nun sagst ich muss die PHP so schreiben dass es den Bytecode zurückgibt frage ich mich auch was ich falsch gemacht habe!
Das habe ich mit

Code:
$fp = fopen("ping/Ping.class", "r");
echo fread($fp, filesize("ping/Ping.class"));
fclose($fp);

auch schon versucht!



Meine Ordner sind so strukturiert:

meinedomain.com/files/testphp <- hier liegt die test.php, die die Class bekannt geben soll
meinedomain.com/files/ping/index.html <- diese hier gibt im Applet Code die PHP an...

...wenn ich den Bytecode auslese und zurückgebe, wie soll dann der Header aussehen? Einfacher Text, oder application, oder...!?

Was mache ich falsch?
Er meldet immer die Fehlermeldung java.lang.ClassNotFoundException: http:..www.killinger-it.com.files.testphp.test.php
 

AlArenal

Top Contributor
Gast hat gesagt.:
...sondern musst in das Attribute den Namen der Klasse schreiben, die du brauchst...

Das hab ich ja mit echo "ping/ping.class"; versucht...

Das ist ein Dateiname, kein Klassenname...
Die Klasse muss zudem in dem vom Applet verwendeten JAR-Archiv an der über den Klassennamen evtl. näher bezeichneten Ort (Paket-Pfad) vorhanden sein.
 

Bleiglanz

Gesperrter Benutzer
Das habe ich mit

$fp = fopen("ping/Ping.class", "r");
echo fread($fp, filesize("ping/Ping.class"));
fclose($fp);

auch schon versucht!
das ist bullshit, weil du binärdaten als text zurückschickst, das kann nicht gehen
 

AlArenal

Top Contributor
Anonymous hat gesagt.:
Bleiglanz hat gesagt.:
das ist bullshit, weil du binärdaten als text zurückschickst, das kann nicht gehen



Deshalb habe ich ja gefragt welchen Header ich denn nehmen soll.....

Gar keinen, weil da ein String reingehört, der der Klassenname ist (evtl. mit Paket-Pfad) und kein Binärkram. Du kannst keine richtige Antwort auf ne falsche Frage erwarten.
 
K

Killi138

Gast
AlArenal hat gesagt.:
Gar keinen, weil da ein String reingehört, der der Klassenname ist (evtl. mit Paket-Pfad) und kein Binärkram. Du kannst keine richtige Antwort auf ne falsche Frage erwarten.


Mann, Mann, Mann....hab ich doch schon versucht - wenn ich "Ping.class" ausgebe, kommt TROTZDEM die Exception, die besagt dass die Klasse file.irgendwas.datei.php nicht gefunden wurde!
Also die Pfadangabe zur PHP, allerdings die "/" durch "." ersetzt! Und das soll er ja gerade nicht machen!
 
K

Killi138

Gast
So - habs jetzt mit application/java probiert und die Ping.class ausgelesen und zurückgegeben....

Fehlermeldungen:

Code:
Laden: Klasse [url]http://www.killinger-it.com/files/testphp/test.php[/url] nicht gefunden
java.lang.ClassNotFoundException: http:..[url]www.killinger-it.com.files.testphp.test.php[/url]
	at sun.applet.AppletClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.applet.AppletClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.applet.AppletClassLoader.loadCode(Unknown Source)
	at sun.applet.AppletPanel.createApplet(Unknown Source)
	at sun.plugin.AppletViewer.createApplet(Unknown Source)
	at sun.applet.AppletPanel.runLoader(Unknown Source)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed.
	at sun.applet.AppletClassLoader.getBytes(Unknown Source)
	at sun.applet.AppletClassLoader.access$100(Unknown Source)
	at sun.applet.AppletClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	... 10 more

--> wieso sagt er denn immer, dass die www.killinger-it.com.files.testphp.test.php Klasse nicht gefunden wurde??
Ich gebe ihm ja diesmal wirklich die Binärdaten zurück...

..jemand ne Idee?
 

AlArenal

Top Contributor
Ich gebs auf :D

Trag hartverdrahtet ein, was deiner Meinung nach da stehen muss, so lange bis es funzt. Und dann schriebste dir ein Skript, das diese erforderliche Ausgabe produziert und setzt es da ein.

Es baut auch keiner gleich ein ganzes Auto, ohne jamals zuvor getestet zu haben, ob der Motor geht...
 
K

Killi138

Gast
So - perfekt...hab das Ganze jetzt ganz anders gelöst!

Is zwar irgendwie drumrum programmiert, aber es tut!

--- Datei index.html: ---

Hat eine JavaScript -Datei includiert (src="http://www......test.php" - wichtig ist das .php!)
Ruft im body-Bereich die JavaScript-Funktion getClass() auf...


--- Datei test.php ---
erstellt einfach eine Java-Script funktion, die den ganzen Applet-Code zurück gibt

...so!

Man sieht also im Quelltext nur noch die getClass() Funktion, sonst nix!
Diese baut den Applet-Code auf un mein Spiel erscheint :) *yippii*

wenn ich die php Datei nun so umbaue, dass eine KundenID mit übergeben wird, kann ich in dieser dann prüfen OB und wenn ja, welche Version der Kunde hat und kann daraufhin die richtige zurückgeben.

Ein weiterer Vorteil ist, dass ich die aufrufende URL prüfen und vergleichen kann...wenn diese nicht gleich der URL ist, die zur KundenID gehört, dann macht mein PHP einfach gar nix!

So sieht jemand auch nicht gleich wo denn die .class auf meinem Server liegt :)
Das war der einzige Grund aus dem ich das brauche!

Trotzdem danke für alles!
 

AlArenal

Top Contributor
Killi138 hat gesagt.:
So sieht jemand auch nicht gleich wo denn die .class auf meinem Server liegt :)
Das war der einzige Grund aus dem ich das brauche!

Trotzdem danke für alles!

Applet mit passendem Parameter starten - Applet lädt dynmisch Klasse nach - Applet benutzt Klasse - aus die Maus...
 
G

Guest

Gast
Bleiglanz hat gesagt.:
Deine Methode dürfte selbst AnfängerHacker doch glatt 2 Minuten aufhalten - gratuliere

wegen? Wie kommt man trotzdem ran?
Ja meine Güte...ich wollte eben nicht dass man den Dateipfad sieht...
 

AlArenal

Top Contributor
Anonymous hat gesagt.:
Bleiglanz hat gesagt.:
Deine Methode dürfte selbst AnfängerHacker doch glatt 2 Minuten aufhalten - gratuliere

wegen? Wie kommt man trotzdem ran?
Ja meine Güte...ich wollte eben nicht dass man den Dateipfad sieht...

Im Zweifelsfalle kommt man immer ran, so lange man die Datei für alle zugänglich (öffentlich) auf nem Webserver liegen hat. Das ist nun wirklich kein Akt.
 
G

Gast

Gast
Es wäre doch eine gute Lösung, wenn es die Datei gar nicht geben würde...wenn ich dann auf meinem Server eine 404 Seite in PHP erstelle, die dann prüft ob der gewünschte Dateiname der meines Spiels war und dann den richtigen Code aus einer ganz anderen Quelle zurückgibt...
 

Bleiglanz

Gesperrter Benutzer
mit javascript kann man eben gar nichts verstecken!

und die Dateien eines Applets müssen eben öffentlich zugänglich sein, sonst kann sie sich der Browser ja nicht holen -> da führt kein Weg dran vorbei

allerdings kannst du die Streaming Lösung zusammen mit HTTP Sessions verwenden, und die class Datei nur nach vorherigem Login zugänglich machen...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Problem beim Verschieben der main-class -> A jni error has occured, please check... Tools - Maven, Gradle, Ant & mehr 9
A Applet: Html Datei und Class Datei nicht im selben Verzeichnis Tools - Maven, Gradle, Ant & mehr 2
M Jar kann nicht gestartet werden - main Class not found Tools - Maven, Gradle, Ant & mehr 5
F Ant ANT javac class-Dateien von entfernten JAVA-Klassen löschen Tools - Maven, Gradle, Ant & mehr 11
K Webstart .class Datei über Reflection laden Tools - Maven, Gradle, Ant & mehr 3
AlexSpritze Ant Frage zu manifest-class-path mit Target jar Tools - Maven, Gradle, Ant & mehr 1
G Nachladen von unbekannten Class-Files im JAR-Archiv Tools - Maven, Gradle, Ant & mehr 4
B Applet (Class-Datei(en)) in Html-Seite einbinden - Clipboard Tools - Maven, Gradle, Ant & mehr 13
S Sonderzeichen in class dateien? Tools - Maven, Gradle, Ant & mehr 4
A mehrere class.dateien Tools - Maven, Gradle, Ant & mehr 10
H .class in .java umformen Tools - Maven, Gradle, Ant & mehr 6
sparrow Ladevorgang von Applets (jar/class) Tools - Maven, Gradle, Ant & mehr 2
D Problem beim einbinden von jar und class datei Tools - Maven, Gradle, Ant & mehr 8
J Editor für ".class"-Dateien? Tools - Maven, Gradle, Ant & mehr 3
L class not found - und warum??? Tools - Maven, Gradle, Ant & mehr 6
A Wie kann man Quelltext von .class Datei sehen? Tools - Maven, Gradle, Ant & mehr 2
B Webstart Java Webstart hängt sich beim Laden auf! Tools - Maven, Gradle, Ant & mehr 8
T Webstart Resource aus .jar laden Tools - Maven, Gradle, Ant & mehr 5
S .jars in einem Ornder automatisch laden lassen Tools - Maven, Gradle, Ant & mehr 2
H Applet applet neu laden im browser Tools - Maven, Gradle, Ant & mehr 10
E Webstart Laden von Tiff-Bildern als BufferedImage und TFW aus einem JAR Tools - Maven, Gradle, Ant & mehr 3
G Webstart Problem mit Adressierung bei Laden von Datei aus jar (Webstart) Tools - Maven, Gradle, Ant & mehr 5
G Textfile in Applet laden möglich? Tools - Maven, Gradle, Ant & mehr 2
U Zertifikat zum Signieren in keytool laden Tools - Maven, Gradle, Ant & mehr 2
T Maven: Abhängigkeit im Jetty laden Tools - Maven, Gradle, Ant & mehr 10
B Hudson - Resourcen laden Tools - Maven, Gradle, Ant & mehr 11
Icewind Applet reagiert nach neu laden der Webseite nicht mehr verlässlich auf KeyEvents Tools - Maven, Gradle, Ant & mehr 6
grudge File in Applet laden Tools - Maven, Gradle, Ant & mehr 4
S Ladebalken beim laden des Applets Tools - Maven, Gradle, Ant & mehr 9
S HttpClient in Applet - html-quellcode laden möglich? Tools - Maven, Gradle, Ant & mehr 3
S Applet schneller laden Tools - Maven, Gradle, Ant & mehr 4
D Fehler beim Applet laden! Tools - Maven, Gradle, Ant & mehr 9
G Bilder von Server Laden Tools - Maven, Gradle, Ant & mehr 4
S applet ueber mehrere ordner hinweg laden Tools - Maven, Gradle, Ant & mehr 2
C Applet + Treiber laden (J/Connector) Tools - Maven, Gradle, Ant & mehr 2
G Java Applet neu laden Tools - Maven, Gradle, Ant & mehr 3
X Problem mit Bilder laden Tools - Maven, Gradle, Ant & mehr 3
D Im Hintergrund laden Tools - Maven, Gradle, Ant & mehr 5
A JNLP Datei aus Application laden Tools - Maven, Gradle, Ant & mehr 4
M URL im Browser laden? Tools - Maven, Gradle, Ant & mehr 9
saxos1983 Fehlerüberprüfung beim Laden von Bilder Tools - Maven, Gradle, Ant & mehr 3
S Aus Applet per Button-Klick anderes Applet in Browser laden Tools - Maven, Gradle, Ant & mehr 7
H animiertes GIF mit Mediatracker laden Tools - Maven, Gradle, Ant & mehr 2
G Fehler beim Laden des Applets Tools - Maven, Gradle, Ant & mehr 7
S Grafik von Server laden? Tools - Maven, Gradle, Ant & mehr 4
S Access Denied beim Bild laden Tools - Maven, Gradle, Ant & mehr 7
S Dateien laden ? Tools - Maven, Gradle, Ant & mehr 2
K Bilder in Applets laden Tools - Maven, Gradle, Ant & mehr 3
G Bild im Applet laden und ausgeben Tools - Maven, Gradle, Ant & mehr 2
R Mein Applet brauch ewig lange zum laden. Tools - Maven, Gradle, Ant & mehr 5
S Sound/Midi Dateien erst komplett laden Tools - Maven, Gradle, Ant & mehr 12

Ähnliche Java Themen

Neue Themen


Oben