webForumDet fria alternativet

Problem att köra min applet med ljud och bild!

Javaur Java

9 svar · 1 473 visningar · startad av Gramas19

Medlem sedan dec. 201250 inlägg
Frågan#1

Hej! Jag har problem att köra min applet som jag har skapat. Har försökt med många olika förslag, bland annat startat om webbläsaren, testat att köra den i andra webbläsare osv. Det konstiga är att den fungerar utmärkt i appletviewer. Jag testar samma exempel som de gör i en bok jag har lånat (Java 2 bibeln). Min kod för mina klasser ser ut så här:

import java.applet.*;
import java.awt.Graphics;

public class HelloApplet extends Applet {

	public void init(){
		resize(200, 150);
	}
	public void paint(Graphics g){
		g.drawString("Hello world", 50, 100);
	}

}

Och det här är klassen för min bild och mitt ljudklipp:

import java.applet.*;
import java.awt.*;

public class HelloMedia extends HelloApplet {

	private Image myImage;
	private AudioClip myAudio;
	
	public void init(){
		super.init();
		
		myImage = getImage(getCodeBase(), "images/test.gif");
		myAudio = getAudioClip(getCodeBase(), "sound/sleep.au");
	}
	
	public void paint(Graphics g){
		g.drawImage(myImage, 0, 0, this);
		super.paint(g);
	}
	
	public void start(){
		myAudio.loop();
	}
	
	public void stop(){
		myAudio.stop();
	}

}

så här ser min html fil ut:

<html>
<head>
<title>Hello world applet</title>
</head>
<body>
applet
<applet code="HelloMedia.class" width=200 height=150>
</applet>
</body>
</html>

(Notera att detta inte är en direkt seriös applet utan mera ett test för att se om det fungerar, vilket det inte vill göra :( ). Är det någon som vet om jag gör något fel eller hur jag kan åtgärda det, eftersom det fungerar i appletviewer? Här är en bild på hur det ser ut när jag försöker köra appleten:

I bilden la jag även till mina mappar så ni kan se var mina filer ligger.

01f563497f2d52a0f068450da73cea70.png
Medlem sedan dec. 201250 inlägg
#2

Ingen som har något svar? :/

Medlem sedan juni 20019 519 inlägg
#3

2 timmar är väl inte så lång tid att vänta?

har du provat att köra applikationen som en server och inte bara lokalt?

visste inte ens att man höll på med <applet> kod längre i huvudtaget

Medlem sedan dec. 201250 inlägg
#4

Boken är ju från 2001 så det kan förklara varför. Nej egentligen är det inte så länge fast jag har suttit och googlat och testat olika saker i ungefär 4 timmar och det känns väldigt länge isåfall. Vad använder man istället för <applet> nu då? Jag har bara testat att köra det lokalt men hur kan jag köra det som en server? Måste jag ladda upp det på en ftp-server nånstans där jag har ett webbhotell eller hur ska jag göra?

Medlem sedan juni 20031 837 inlägg
#5

Vad får du för värden av getCodeBase() när du kör koden i webbläsaren?
Om det är hela sökvägen så kanske getImage och getAudioClip inte tycker om den formateringen?

enligt din kod så ska sleep.au inte ligga i sound-katalogen.

Medlem sedan dec. 201250 inlägg
#6

Ifall jag trycker på rutan där så får jag upp ett felmeddelande som säger så här:

access denied ("java.io.FilePermission" "\C:\Java projekt\HelloWorldApplet\bin\images\test.gif" "read")

Oj, jag hade gjort en test och flyttat den så i koden ska det egentligen stå sound/sleep.au.

Medlem sedan dec. 201250 inlägg
#7

Jag gjorde ett test att ta bort bilden och musiken och istället använda g.fillOval() och då fungerade det, den ritade ut min oval och skrev ut Hello world.. Det måste alltså vara något som är fel med bilden och musiken? Men jag har ingen aning om vad :s

Medlem sedan juni 20031 837 inlägg
#8

En snabb sökning ger svaret att en Applet inte har rättigheter att läsa i filsystemet.
Man kan tydligen signa sin kod med följande:

javac AppletClass.java
jar cvf AppletClass.jar AppletClass.class
keytool -genkey -validity 3650 -keystore pKeyStore -alias keyName
keytool -selfcert -keystore pKeyStore -alias keyName-validity 3650
jarsigner -keystore pKeyStore AppletClass.jar keyName

Det är dock inget jag har testat.

Det kanske fungerar bättre om du laddar sidan genom en webbserver så att du får en http-adress. Möjligt att java hanterar sökvägen till bild och ljud bättre då.

Medlem sedan dec. 201250 inlägg
#9

Tack! Ja ifall det är så att den inte får läsa i filsystemet så är ju det orsaken till att det inte fungerar eftersom AppletViewer visar det helt perfekt. Vet du någonstans jag kan skaffa ett gratis webbhotell då och lägga upp mina filer för att testas? Jag använde Passagen förut men det verkar inte fungera längre :/

Medlem sedan juni 20031 837 inlägg
#10

Du kan installera webbserver på din egen dator för att testa.
IIS finns med till vissa versioner av Windows annars kan man installera Apache på de flesta andra OS.

137 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)