Lieber Besucher, herzlich willkommen bei: RPG Studio - Make your World real. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Bananni

Gesperrter Nutzer

  • »Bananni« wurde gesperrt
  • »Bananni« ist der Autor dieses Themas

Motto: Belive the hype!

  • Nachricht senden

1

Mittwoch, 26. Mai 2010, 20:34

Speichern als JAR - "Exception" - Netbeans 6.8

Also ich würde gerne mein Project als JAR abspeichern, aber irgendwie will es ned so wie ich will.
Ich habe Netbeans 6.8.
Meine Main klass is: RPG.Main
libarys: slick
alles eingestellt wie es sein sollte, teste ichs innerhalb von netbeans, dann führt er alles ohne probleme aus.
Nun möchte ich es fertig stellen.
Drücke auf clean
und dann auf build.
Nun kommt der erste error:

Quellcode

1
2
Note: C:\Users\Blair\Documents\NetBeansProjects\RPG\src\RPG\BattleMap.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

ich benutzt dann: -Xlint:unchecked
und ersagt mir wo der fehler sein soll:

Quellcode

1
2
3
4
5
C:\Users\Blair\Documents\NetBeansProjects\RPG\src\RPG\BattleMap.java:50: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List
	font.getEffects().add(new ColorEffect(java.awt.Color.white));
C:\Users\Blair\Documents\NetBeansProjects\RPG\src\RPG\BattleMap.java:51: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.List
	font.getEffects().add(new ShadowEffect(java.awt.Color.black, 5, 5, 0.5f));
2 warnings

So, wie gesagt beim normalen test habe ich keinerlei probleme, nur beim speichern als JAR, da hat er auf einmal errors.
Er erstellt die JAR aber, nun möchte ich sie öffenen.
Er schafft es ned weil er die Lib lwgjl ned findet, daraufhin ziehe ich die JAR aus dem dist ordner ins hauptverzeichniss.
Nun findet er die Lib, jedoch nicht mehr die RPG.Main class.
(das hauptverzeichniss hat den ordner lib in dem die Libarys sind, genau so wie der ordner dist sie hat, mit exact den selben inhalt)

Der code mit den "Fehler":
Spoiler

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package RPG;
import java.io.IOException;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.Image;
import java.util.*;
import org.newdawn.slick.Color;
import org.newdawn.slick.particles.ParticleSystem;
import org.newdawn.slick.particles.ParticleIO;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Input;
import org.newdawn.slick.UnicodeFont;
import org.newdawn.slick.font.effects.ColorEffect;
import org.newdawn.slick.font.effects.ShadowEffect;
 
public class BattleMap extends DB_Troops {
  private Image atb_frame;
  private Image atb_barlv1;
  private Image atb_barlv2;
  private Image atb_barlv3;
  private Image skillbuttons;
  private Image itemsint;
  private Image infobox;
  Comparator<GameBattler> comparator = new BattlerCompare();
  private ArrayList<AnimationInfo> animations = new ArrayList<AnimationInfo>();
  private ArrayList<ParticleSystem> particles = new ArrayList<ParticleSystem>();
  private boolean[][] blocked;
  private int sektorWidth=32;
  private int sektorHeight=32;
  private int activeBattler=0;
  private mcursor mouse;
  private int choosenPlayer=0;
  private Image[] orderbacks;
  private boolean hideKeyboardInterface;
  private RolletCommand skills;
  private RolletCommand items;
  private int skillMenuIndex=-1;
  private float abt;
  private int absu;
  private String infotext="";
  private UnicodeFont font;
  BattleMap(int map_id, int troop_id) throws SlickException{
	atb_frame=new Image("files/Battle/atb_frame.png");
	atb_barlv1=new Image("files/Battle/atb_bar_lv1.png");
	atb_barlv2=new Image("files/Battle/atb_bar_lv2.png");
	atb_barlv3=new Image("files/Battle/atb_bar_lv3.png");
	skillbuttons= new Image("files/Battle/skillbuttons.png");
	itemsint= new Image("files/Battle/items.png");
	infobox= new Image("files/Battle/infobox.png");
	font= new UnicodeFont("files/Fonts/ARBERKLEY.ttf",18,false,false);
	font.getEffects().add(new ColorEffect(java.awt.Color.white));
	font.getEffects().add(new ShadowEffect(java.awt.Color.black, 5, 5, 0.5f));
	ParticleSystem.setRelativePath("files/Particles/");
	loadMapFromDB(map_id);
	loadTroopFromDB(troop_id);
	GameBattler buff;
	for(int i=0;i<Globals.party.actors.size();i++){
  	buff = new GameBattler(Globals.party.actors.get(i).actor_id,i);
  	buff.setTo(600,250);
  	buff.turnLeft();
  	battlers.add(buff);
	}
	loadCollision();
	mouse=new mcursor();
	orderbacks=new Image[]{
  	new Image("files/Battle/order.png"),
  	new Image("files/Battle/order.png"),
  	new Image("files/Battle/order.png"),
  	new Image("files/Battle/order.png"),
  	new Image("files/Battle/order.png")
	};
	skills=new RolletCommand(new String[]{},50,Globals.height-255,0,75,true);
	skills.active=false;
	skills.visible=false;
	items=new RolletCommand(new String[]{},50,Globals.height-180,20,150,true);
	items.active=true;
	items.visible=true;
  }
// [...]
}

zum Lesen den Text mit der Maus markieren

(try catch um den code mit den fehler hab ich schon versucht, ergibt wie erwartet kein anderes ergebniss)
Wenn ich den fehler code herausnehme, dann startet er die JAR auch ned, dann bleibt es dabei das er entweder die lib oda die Main class ned findet ...

Lange rede kurzer sinn:
Wie erstell ich aus meinen project eine JAR die die Libarys und klassen sowie alle dazugehörigen datein ( musik und grafiken und andere dokumente ) in sich speichert oder nur alle klassen in sich aufnimmt und auf libs sowie den grafiken verweißt wenn diese als unterordner zur JAR vorliegen??
ty
Bild
My Deviantart : )
Spoiler

StepSound Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#==================================
# Step Sound Script
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#==================================
class Game_Player
  # CONFIGS
  STEP_SOUND_VOLUME = 100
  STEP_SOUND_PITCH = 100
  STEP_SOUND_ARRAY=[
                    ["",0], # TERRAIN ID = 0
                    ["test.wav",10], # TERRAIN ID = 1
                    ["",0], # TERRAIN ID = 2
                    ["",0], # TERRAIN ID = 3
                    ["",0], # TERRAIN ID = 4
                    ["",0], # TERRAIN ID = 5
                    ["",0], # TERRAIN ID = 6
                    ["",0], # TERRAIN ID = 7
                    ["",0], # TERRAIN ID = 8
                    ["",0]  # TERRAIN ID = 9
                   ]
  # ENDE CONFIGS
  alias :increase_steps_banannis_shit :increase_steps
  alias :update_banannis_shit :update
  def increase_steps
    increase_steps_banannis_shit
    if @step_countdown == 0
      id = $game_map.terrain_tag(x, y)
      if STEP_SOUND_ARRAY[id][0] != ""
        Audio.se_play("Audio/SE/" + STEP_SOUND_ARRAY[id][0], STEP_SOUND_VOLUME, STEP_SOUND_PITCH)
        @step_countdown=STEP_SOUND_ARRAY[id][1]
      end
    end
  end
  def update
    update_banannis_shit
    if @step_countdown == nil
      @step_countdown=0
    end
    if @step_countdown != 0
      @step_countdown-=1
    end
  end
end


Map Roots

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#==================================
# Map Names & Map Root
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#---------------------------------------------------
# Get Map Name:
#   $game_system.map_names[any_map_id]
# Get Map Root ID:
#   $game_system.parent_map(any_map_id)
#==================================
class Game_System
  attr_reader :map_names
  alias :wtf_bananni_alias_this_game_system_init :initialize
  def initialize
    wtf_bananni_alias_this_game_system_init
    read_map_names
  end
  def parent_map id=$game_map.map_id
    while true
      par=@map_parent[id]
      break if par == 0
      id=par
    end
    return @map_names[id]
  end
  def read_map_names
    map_infos = load_data("Data/MapInfos.rxdata")
    @map_names = Array.new
    @map_parent = Array.new
    for key in map_infos.keys
      @map_names[key] = map_infos[key].name
      @map_parent[key] = map_infos[key].parent_id
    end
  end
end

zum Lesen den Text mit der Maus markieren

2

Mittwoch, 26. Mai 2010, 22:16

Hallo,
um es jetzt mal für mich zu wiederholen:
Du hast mit NetBeans ein Projekt mit Slick & Lwjgl erstellt und es läuft in NetBeans wunderbar?
Du exportierst es, die Jar wird richtig angelegt, er kann Sie aber nicht starten?
-> Wie lädst du die Ressourcen?
-> Liegen die Ressourcen extern, oder intern in der jar? (bzw. hast du sie in netbans in deine packagestruktur eingebunden, oder extra ordner?)

Deine beiden oberen "Fehler" sind Warnungen, er sollte deine jar normal exportieren können. Da haben die Slickentwickler eine ArrayList generics gelassen, d.h. ohne spezialisierung, den "Fehler" kannste nur beheben, wenn du deren Code anpasst. :/

Und kannst du mir nochmal deine Ordnerstruktur erklären? Was verschiebst du da wohin?
IdR sieht es so aus:
- Spiel.jar
- LWJGL-Libs
- Audio-Ordner
- Graphics Ordner

bzw.
- Spiel.jar (inlk. Audio & Graphic)
- LWJGL-Libs



Wenn der deine Ressourcen nicht findet, probiere mal folgendes:

Quellcode

1
new Image("files/Battle/order.png")

->

Quellcode

1
2
3
File f = new File("files/Battle/order.png")
System.out.printf("%s (%b)",f.getAbsolutePath(), f.exists());
new Image(f.getAbsolutePath())

So findet man raus, ob er im richtigen Ordner nachschaut. Wenn es in NetBeans ist, kann man auch breakpoints setzen, ich empfehle jedoch, es über die package strutkur zu machen, die ist idR "robuster", aber richtiges Package auswählen. ;)

Quellcode

1
new Image(ABC.class.getResourceAsStream("order.png"),"files/Battle/order.png",false)


Sollte irgendwas unklar sein, melden, kann ja nicht hellsehen, was du schon alles kennst ;)

Grüße Steve
:information: YAams
:rainbow: Random Signatur
Bild





Weitere Informationen | Download
Mit Support für RGSS Project 1!
Bild

Bananni

Gesperrter Nutzer

  • »Bananni« wurde gesperrt
  • »Bananni« ist der Autor dieses Themas

Motto: Belive the hype!

  • Nachricht senden

3

Donnerstag, 27. Mai 2010, 17:25

das der hinweis kein fehler is der mir das project unausführbar macht, weiß ich, dachte nur es wäre wichtig.
Meine ordner struktur:
RPG
>dist
>>Spiel.jar (da macht netbeans es rein, kA wieso)
>>lib
>>>(Libarys)

RPG
>files
>>(GRAPHICS/AUDIO)

RPG
>lib
>>(LIBARYS) (zum 2. ma ... nützlich herr netbeans ...)

Wenn ich die Jar ins hauptverzeichniss ziehe, findet er die libs ohne probleme.
Dann jedoch nicht mehr meine class.
Im dist ordner findet er meine class aber ned mehr die lib.
Das sagt er mir zumindest!
inner konsole sah ich dann das er, wo er normalerweise sagt er kann RPG.Main nicht finden.
Auffeinmal sie ausführt, wtf?
Aber abspielen kann mans nicht...
Wie gesagt innerhalb von Netbeans kann man alles super ausführen, ohne jegliche errors, nur als jar versucht es mir das leben schwer zu machen.
Ich versuchs einfach mit eclipse.
netbeans ... da schau ich ned durch >_>

Edit:
Eclipse gehts auch ned >_>
Hier ma der fehlercode, kommt bei beiden das selbe, aber wieso kann ich dann das project in netbeans testen? aber nicht exportieren? >_>
(villeicht findet er main ned weil da angeblich n fehler drin sein soll?)
Spoiler

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
	at java.lang.ClassLoader.loadLibrary(Unknown Source)
	at java.lang.Runtime.loadLibrary0(Unknown Source)
	at java.lang.System.loadLibrary(Unknown Source)
	at org.lwjgl.Sys$1.run(Sys.java:75)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.lwjgl.Sys.doLoadLibrary(Sys.java:68)
	at org.lwjgl.Sys.loadLibrary(Sys.java:84)
	at org.lwjgl.Sys.<clinit>(Sys.java:101)
	at org.lwjgl.opengl.Display.<clinit>(Display.java:128)
	at org.newdawn.slick.AppGameContainer$1.run(AppGameContainer.java:39)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.newdawn.slick.AppGameContainer.<clinit>(AppGameContainer.java:36)

zum Lesen den Text mit der Maus markieren

Slick klappt doch bei so vielen leuten , nur bei mir wieder einmal ned >_> ich hasse es! (eclipse is ja ma schrecklich >_> da findet man sich ja 0 zurecht x_x)
das muss iwie klappen! ES MUSS! XD (kein bock alle klassen aus der lib nachzubauen >_>)
Bild
My Deviantart : )
Spoiler

StepSound Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#==================================
# Step Sound Script
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#==================================
class Game_Player
  # CONFIGS
  STEP_SOUND_VOLUME = 100
  STEP_SOUND_PITCH = 100
  STEP_SOUND_ARRAY=[
                    ["",0], # TERRAIN ID = 0
                    ["test.wav",10], # TERRAIN ID = 1
                    ["",0], # TERRAIN ID = 2
                    ["",0], # TERRAIN ID = 3
                    ["",0], # TERRAIN ID = 4
                    ["",0], # TERRAIN ID = 5
                    ["",0], # TERRAIN ID = 6
                    ["",0], # TERRAIN ID = 7
                    ["",0], # TERRAIN ID = 8
                    ["",0]  # TERRAIN ID = 9
                   ]
  # ENDE CONFIGS
  alias :increase_steps_banannis_shit :increase_steps
  alias :update_banannis_shit :update
  def increase_steps
    increase_steps_banannis_shit
    if @step_countdown == 0
      id = $game_map.terrain_tag(x, y)
      if STEP_SOUND_ARRAY[id][0] != ""
        Audio.se_play("Audio/SE/" + STEP_SOUND_ARRAY[id][0], STEP_SOUND_VOLUME, STEP_SOUND_PITCH)
        @step_countdown=STEP_SOUND_ARRAY[id][1]
      end
    end
  end
  def update
    update_banannis_shit
    if @step_countdown == nil
      @step_countdown=0
    end
    if @step_countdown != 0
      @step_countdown-=1
    end
  end
end


Map Roots

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#==================================
# Map Names & Map Root
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#---------------------------------------------------
# Get Map Name:
#   $game_system.map_names[any_map_id]
# Get Map Root ID:
#   $game_system.parent_map(any_map_id)
#==================================
class Game_System
  attr_reader :map_names
  alias :wtf_bananni_alias_this_game_system_init :initialize
  def initialize
    wtf_bananni_alias_this_game_system_init
    read_map_names
  end
  def parent_map id=$game_map.map_id
    while true
      par=@map_parent[id]
      break if par == 0
      id=par
    end
    return @map_names[id]
  end
  def read_map_names
    map_infos = load_data("Data/MapInfos.rxdata")
    @map_names = Array.new
    @map_parent = Array.new
    for key in map_infos.keys
      @map_names[key] = map_infos[key].name
      @map_parent[key] = map_infos[key].parent_id
    end
  end
end

zum Lesen den Text mit der Maus markieren

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Bananni« (27. Mai 2010, 17:09)


4

Donnerstag, 27. Mai 2010, 19:33

Hallo,
komische Ordnerstruktur. Wie startest du dein Spiel extern? Doppelklick auf die spiel.jar? Und legt noch NetBeans noch irgendwelche .jars dazu, oder ist es die einzigste? Welches Exportprofil hast du in Netbeans gewählt?

Wechle mal mit cmd in dein dist Verzeichnis und führe aus:

Quellcode

1
java -jar spiel.jar -Djava.library.path=lib/


Wenn es nicht klappt:
IdR müssen die .dlls im gleichen Verzeichnis wie dein .jar lioegen. Die .jar verschieben, ist aber nicht klug, da er kann die Ressourcen idR nicht mehr findet (sind ja relativ angegeben.) Und wieso liegen die .dlls doppelt rum?

Der Fehler sagt nur aus dass er die Libs von LWGJL nicht findet. Bzw, wenn dein Projekt nicht zu groß ist (oder man alle Ressourcen, bis die vom Titelmenü/ersten Szene löscht), dann lad es mal hoch. So kann man einfacher einen Blick drauf werfen.

( Und Eclipse ist wesendlich flexibler, schneller, performanter als NetBeans :p (Einzig der GUI-Editor ist nicht so pralle.) (Damit LWGJL in Eclipse läuft, müssen bei den Pojekteinstellungen noch die Jars & nativen .dlls eingebunden werden.) )

Bei mir klappt Slick auch, aber da liegt auch alles in eim Verzeichnis :3 und die Ressourcen mit in der .jar ...

Grüße Steve
:information: YAams
:rainbow: Random Signatur
Bild





Weitere Informationen | Download
Mit Support für RGSS Project 1!
Bild

5

Donnerstag, 27. Mai 2010, 21:13

Zitat

Wenn ich die Jar ins hauptverzeichniss ziehe, findet er die libs ohne probleme.
Dann jedoch nicht mehr meine class.
Im dist ordner findet er meine class aber ned mehr die lib.
Das sagt er mir zumindest!
inner konsole sah ich dann das er, wo er normalerweise sagt er kann RPG.Main nicht finden.
Auffeinmal sie ausführt, wtf?
Nicht immer alles auf die IDE schieben =P Damit dein Programm die Jar-Files und Class-Dateien der verwendeten Libraries findet, musst du ihm den Pfad dieser Dateien mitteilen. Dies geht über den Classpath. Entweder beim Starten des Programms -classpath ./meine_libraries mitgeben, oder, falls du dein Programm in ein Jar-File packen willst, Class-Path: ./meine_libraries in das Manifest schreiben. Was mich irritiert, ist das deine VM offenbar meckert, dass es RPG.Main nicht findet. Das sollte eigentlich in das Jar-File direkt reingepackt werden, sonst macht ein Jar-File doch gar keinen Sinn.
Weiterhin muss dein Programm die nativen Libraries kennen. Dafür gibts die VM-Kommandozeilen-Option -Djava.library.path=./meine_nativen_libraries. In dieses Verzeichnis packst du deine .DLLs bzw. .SOs dann rein.
Bild
RMXP Grundkurs
1 2 3
Ruby/RGSS-Kurs

Bananni

Gesperrter Nutzer

  • »Bananni« wurde gesperrt
  • »Bananni« ist der Autor dieses Themas

Motto: Belive the hype!

  • Nachricht senden

6

Donnerstag, 27. Mai 2010, 23:29

Das mir alles zu hoch x_X ich umgeh das problem jz einfach geschickt!
-zum vorschlag hammer greif- ... -libs und IDE verprügel-
ich werf die lib raus und machs halt ohne v_v aber danke für eure hilfe ^^
war eh ne dll, dann geht doch meine schöne platformunabhängigkeit verloren, oda?
Bild
My Deviantart : )
Spoiler

StepSound Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#==================================
# Step Sound Script
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#==================================
class Game_Player
  # CONFIGS
  STEP_SOUND_VOLUME = 100
  STEP_SOUND_PITCH = 100
  STEP_SOUND_ARRAY=[
                    ["",0], # TERRAIN ID = 0
                    ["test.wav",10], # TERRAIN ID = 1
                    ["",0], # TERRAIN ID = 2
                    ["",0], # TERRAIN ID = 3
                    ["",0], # TERRAIN ID = 4
                    ["",0], # TERRAIN ID = 5
                    ["",0], # TERRAIN ID = 6
                    ["",0], # TERRAIN ID = 7
                    ["",0], # TERRAIN ID = 8
                    ["",0]  # TERRAIN ID = 9
                   ]
  # ENDE CONFIGS
  alias :increase_steps_banannis_shit :increase_steps
  alias :update_banannis_shit :update
  def increase_steps
    increase_steps_banannis_shit
    if @step_countdown == 0
      id = $game_map.terrain_tag(x, y)
      if STEP_SOUND_ARRAY[id][0] != ""
        Audio.se_play("Audio/SE/" + STEP_SOUND_ARRAY[id][0], STEP_SOUND_VOLUME, STEP_SOUND_PITCH)
        @step_countdown=STEP_SOUND_ARRAY[id][1]
      end
    end
  end
  def update
    update_banannis_shit
    if @step_countdown == nil
      @step_countdown=0
    end
    if @step_countdown != 0
      @step_countdown-=1
    end
  end
end


Map Roots

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#==================================
# Map Names & Map Root
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#---------------------------------------------------
# Get Map Name:
#   $game_system.map_names[any_map_id]
# Get Map Root ID:
#   $game_system.parent_map(any_map_id)
#==================================
class Game_System
  attr_reader :map_names
  alias :wtf_bananni_alias_this_game_system_init :initialize
  def initialize
    wtf_bananni_alias_this_game_system_init
    read_map_names
  end
  def parent_map id=$game_map.map_id
    while true
      par=@map_parent[id]
      break if par == 0
      id=par
    end
    return @map_names[id]
  end
  def read_map_names
    map_infos = load_data("Data/MapInfos.rxdata")
    @map_names = Array.new
    @map_parent = Array.new
    for key in map_infos.keys
      @map_names[key] = map_infos[key].name
      @map_parent[key] = map_infos[key].parent_id
    end
  end
end

zum Lesen den Text mit der Maus markieren

7

Freitag, 28. Mai 2010, 00:07

Naja, du könntest die Libraries für Windows/Linux x86/amd64 und Macintosh intel 64bit in den Ordner packen. Damit hättest du ja die wichtigsten Plattformen abgedeckt. Ansonsten packst du noch den Sourcecode der Library rein, dann kann jeder sich das selbst für seine Plattform kompilieren.

Zu deinem Problem: 'ne Überlegung wäre auch, ob du überhaupt ein jar-File brauchst. Wichtiger wäre erstmal, dass du die Applikation so zu laufen bekommst. Viele IDE's (auch Netbeans) legen für dein Projekt ant-Files an, die du ebenfalls nutzen kannst. Dort steht bereits alles wichtige drin. Welche Classpaths dein Programm braucht, wo die Libraries liegen, wie man das Programm kompiliert etc. Probier doch mal einfach die Konsole zu öffnen, in den Ordner deines Projektes zu gehen und dort

Quellcode

1
ant run

einzugeben.

Außerdem könntest du mal konkret die Fehlermeldungen posten, die die VM von sich gibt. Bisher hast du das nirgends konkret gesagt. Eben schreibst du, dass du die Libraries raushauen willst. Wozu denn, wenn der Fehler laut einem vorherigen Post von dir darin besteht, dass die Main-Klasse nicht gefunden wurde.
Bild
RMXP Grundkurs
1 2 3
Ruby/RGSS-Kurs

Bananni

Gesperrter Nutzer

  • »Bananni« wurde gesperrt
  • »Bananni« ist der Autor dieses Themas

Motto: Belive the hype!

  • Nachricht senden

8

Freitag, 28. Mai 2010, 14:40

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
	at java.lang.ClassLoader.loadLibrary(Unknown Source)
	at java.lang.Runtime.loadLibrary0(Unknown Source)
	at java.lang.System.loadLibrary(Unknown Source)
	at org.lwjgl.Sys$1.run(Sys.java:75)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.lwjgl.Sys.doLoadLibrary(Sys.java:68)
	at org.lwjgl.Sys.loadLibrary(Sys.java:84)
	at org.lwjgl.Sys.<clinit>(Sys.java:101)
	at org.lwjgl.opengl.Display.<clinit>(Display.java:128)
	at org.newdawn.slick.AppGameContainer$1.run(AppGameContainer.java:39)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.newdawn.slick.AppGameContainer.<clinit>(AppGameContainer.java:36)

Das ist der fehler der kommt wenn ich es mit der Lib ausführen will.
Das mit der Main class hab ich geschafft.
Die libs findet er eigendlich mein ich weil org.newdawn.slick.AppGameContainer eine davon is.
Er mekert halt nur bei lwjgl.

Ich hab das project ma kopiert und die libs selber geschrieben.
Jetzt findet er meine ressourcen ned mehr :'(
Dabei versuch ichs den files ordner inc unterordner in die Jar einzubinden, > findet die daten ned
oder den files ordner ausserhalb der Jar liegen zu lassen, > findet die daten ned
Könnte das problem mit lwjgl darin liegen das der die bilder ned findet?

(ich les mia um sprachen zu lernen eher selten tuts durch, deswegen könnts auch n ganz banaler fehler sein :D )

So les ich im moment meine bilder:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
  public static BufferedImage load(String filename){
    BufferedImage img;
    try{
      img = ImageIO.read(new File(filename));
    }
    catch( java.io.IOException e){
      img=null;
      System.out.println("Can't find file: "+filename);
    }
    return img;
  }
Bild
My Deviantart : )
Spoiler

StepSound Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#==================================
# Step Sound Script
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#==================================
class Game_Player
  # CONFIGS
  STEP_SOUND_VOLUME = 100
  STEP_SOUND_PITCH = 100
  STEP_SOUND_ARRAY=[
                    ["",0], # TERRAIN ID = 0
                    ["test.wav",10], # TERRAIN ID = 1
                    ["",0], # TERRAIN ID = 2
                    ["",0], # TERRAIN ID = 3
                    ["",0], # TERRAIN ID = 4
                    ["",0], # TERRAIN ID = 5
                    ["",0], # TERRAIN ID = 6
                    ["",0], # TERRAIN ID = 7
                    ["",0], # TERRAIN ID = 8
                    ["",0]  # TERRAIN ID = 9
                   ]
  # ENDE CONFIGS
  alias :increase_steps_banannis_shit :increase_steps
  alias :update_banannis_shit :update
  def increase_steps
    increase_steps_banannis_shit
    if @step_countdown == 0
      id = $game_map.terrain_tag(x, y)
      if STEP_SOUND_ARRAY[id][0] != ""
        Audio.se_play("Audio/SE/" + STEP_SOUND_ARRAY[id][0], STEP_SOUND_VOLUME, STEP_SOUND_PITCH)
        @step_countdown=STEP_SOUND_ARRAY[id][1]
      end
    end
  end
  def update
    update_banannis_shit
    if @step_countdown == nil
      @step_countdown=0
    end
    if @step_countdown != 0
      @step_countdown-=1
    end
  end
end


Map Roots

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#==================================
# Map Names & Map Root
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#---------------------------------------------------
# Get Map Name:
#   $game_system.map_names[any_map_id]
# Get Map Root ID:
#   $game_system.parent_map(any_map_id)
#==================================
class Game_System
  attr_reader :map_names
  alias :wtf_bananni_alias_this_game_system_init :initialize
  def initialize
    wtf_bananni_alias_this_game_system_init
    read_map_names
  end
  def parent_map id=$game_map.map_id
    while true
      par=@map_parent[id]
      break if par == 0
      id=par
    end
    return @map_names[id]
  end
  def read_map_names
    map_infos = load_data("Data/MapInfos.rxdata")
    @map_names = Array.new
    @map_parent = Array.new
    for key in map_infos.keys
      @map_names[key] = map_infos[key].name
      @map_parent[key] = map_infos[key].parent_id
    end
  end
end

zum Lesen den Text mit der Maus markieren

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Bananni« (28. Mai 2010, 14:40)


9

Freitag, 28. Mai 2010, 18:49

Was er nicht findet ist lwjgl, eine native Library (unter Windows in Form einer DLL-Datei). Du musst beim Starten des Programms diesem mitteilen, wo die Library zu finden ist. Das geht mit dem Kommandozeilenparameter -Djava.library.path.

Wenn du die DLL-Dateien in den selben Ordner packst wie dein Jar-File, so startest du dein Programm mit dem Befehl:

Quellcode

1
java -jar -Djava.library.path=. mein_jar_file.jar


Wenn du das nicht jedes Mal aufs neue eintippen willst, dann erstell dir 'ne Batch-Datei (.bat) mit diesem Inhalt und führe die aus.

Du kannst meines Wissens die nativen Libraries nicht in das Jar-File packen. Dann findet das Programm die nicht. Bilder dagegen dürfen durchaus auch in das Jar-File. Um in den "URI-Path" des Jar-Files reinzukommen, verwende die Class#getResource Methode. Also nicht mit new File(filename) den Pfad zu deinen Bildern bekommen, sondern mit MyClass.class.getResource(filename).
Bild
RMXP Grundkurs
1 2 3
Ruby/RGSS-Kurs

Bananni

Gesperrter Nutzer

  • »Bananni« wurde gesperrt
  • »Bananni« ist der Autor dieses Themas

Motto: Belive the hype!

  • Nachricht senden

10

Freitag, 28. Mai 2010, 19:44

Ich hab das ma so gemacht und nun sagt er mir etwas aus dem ich absolut nicht schlau werde:
(Hab ma ClassLoader genommen weil ichs in Class ned gefunden hab)

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Cache {
  public BufferedImage load(String filename){
    BufferedImage img;
    try{
      img = ImageIO.read(new File(ClassLoader.getResource(filename).getFile()));
// Non-static method getResource() can not referenced by static contents , ... STATIC????
    }
    catch( java.io.IOException e){
      img=null;
      System.out.println("Can't find file: "+filename);
    }
    return img;
  }
}

Also, er will mir weiß machen das meine methode: load() ne static methode is, und er deswegen den code ned ausführen kann >_>
Bild
My Deviantart : )
Spoiler

StepSound Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#==================================
# Step Sound Script
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#==================================
class Game_Player
  # CONFIGS
  STEP_SOUND_VOLUME = 100
  STEP_SOUND_PITCH = 100
  STEP_SOUND_ARRAY=[
                    ["",0], # TERRAIN ID = 0
                    ["test.wav",10], # TERRAIN ID = 1
                    ["",0], # TERRAIN ID = 2
                    ["",0], # TERRAIN ID = 3
                    ["",0], # TERRAIN ID = 4
                    ["",0], # TERRAIN ID = 5
                    ["",0], # TERRAIN ID = 6
                    ["",0], # TERRAIN ID = 7
                    ["",0], # TERRAIN ID = 8
                    ["",0]  # TERRAIN ID = 9
                   ]
  # ENDE CONFIGS
  alias :increase_steps_banannis_shit :increase_steps
  alias :update_banannis_shit :update
  def increase_steps
    increase_steps_banannis_shit
    if @step_countdown == 0
      id = $game_map.terrain_tag(x, y)
      if STEP_SOUND_ARRAY[id][0] != ""
        Audio.se_play("Audio/SE/" + STEP_SOUND_ARRAY[id][0], STEP_SOUND_VOLUME, STEP_SOUND_PITCH)
        @step_countdown=STEP_SOUND_ARRAY[id][1]
      end
    end
  end
  def update
    update_banannis_shit
    if @step_countdown == nil
      @step_countdown=0
    end
    if @step_countdown != 0
      @step_countdown-=1
    end
  end
end


Map Roots

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#==================================
# Map Names & Map Root
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#---------------------------------------------------
# Get Map Name:
#   $game_system.map_names[any_map_id]
# Get Map Root ID:
#   $game_system.parent_map(any_map_id)
#==================================
class Game_System
  attr_reader :map_names
  alias :wtf_bananni_alias_this_game_system_init :initialize
  def initialize
    wtf_bananni_alias_this_game_system_init
    read_map_names
  end
  def parent_map id=$game_map.map_id
    while true
      par=@map_parent[id]
      break if par == 0
      id=par
    end
    return @map_names[id]
  end
  def read_map_names
    map_infos = load_data("Data/MapInfos.rxdata")
    @map_names = Array.new
    @map_parent = Array.new
    for key in map_infos.keys
      @map_names[key] = map_infos[key].name
      @map_parent[key] = map_infos[key].parent_id
    end
  end
end

zum Lesen den Text mit der Maus markieren

11

Freitag, 28. Mai 2010, 20:06

Nein, er sagt nur, dass getResource eine Instanzmethode ist und daher von einer Instanz von ClassLoader ausgeführt werden muss. z.B. ClassLoader.getSystemClassLoader().getResource(filename) oder eben direkt ClassLoader.getSystemResource(filename).

Was du da zurückbekommst ist eine URL und aus der kannst du nicht ohne weiteres ein File machen. In dem Fall zeigt die URL ja nicht auf ein richtiges File, sondern auf ein File in einem Jar-File. Dieses kannst du aber nicht über das Filesystem einlesen, sondern du musst es aus dem Jar-File extrahieren. Darum musst du dich eigentlich auch gar nicht kümmern. ImageIO kann auch URLs als Source bekommen. Und wenn du ihm eine jar:// URL gibst, weiß ImageIO auch, dass es die entsprechenden Daten aus einem Jar-File extrahieren muss.
Bild
RMXP Grundkurs
1 2 3
Ruby/RGSS-Kurs

Bananni

Gesperrter Nutzer

  • »Bananni« wurde gesperrt
  • »Bananni« ist der Autor dieses Themas

Motto: Belive the hype!

  • Nachricht senden

12

Freitag, 28. Mai 2010, 22:29

jz sagt er mia:
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
Ich habe den files ordner in die jar gepackt, und will durch dieses script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Cache {
  public static BufferedImage load(String filename){
    BufferedImage img;
    try{
      img = ImageIO.read(ClassLoader.getSystemResource(filename));
    }
    catch( java.io.IOException e){
      img=null;
      System.out.println("Can't find file: "+filename);
    }
    return img;
  }
}

Das bild: "files/Battle/atb_frame.png"
laden, dafür benutz ich:
BufferedImage atb_frame=Cache.load("files/Battle/atb_frame.png");
Hab ich iwas falsch gemacht? XD ( sry weil das problem so lange dauert ^^" )

Also was ich gerade herausgefunden habe:
wenn ich die bilder über new File() lade und dazu den absoluten pfad von C bis zu den datein:
C:\Users\Blair\Documents\NetBeansProjects\RPGEngine\files\
angeb, dann führt er die Jar aus.
Wenn ich also die bilder in die Jar einfüge und die dann aus der jar laden will und den ordner files/ in die jar einbinde, dann wird nur der inhalt von files/ eingebunden und files/ entfernt?
also aus: files/Battlers/img.png
würde dann: Battlers/img.png
und aufrufen müsste ichs dann durch: jar://Battlers/img.png ??
weil jar://files/Battlers/img.png klappt ned =/

::EDIT::
HOLY **** !
ES SCHEINT ZU FUNKTIONIEREN! XD
hab das jar:// jz ma weg gemacht.
OMG! gleich mal alle datei pfade anpassen :3 ( Edit2: ja es klappt perfect XD )
TY so much euch beiden XD :verliebt:

Spoiler

Hier ma mein fertiges Bilder-Lade script falls jemand das selbe problem haben sollte:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//package PROJECT;
import java.awt.image.BufferedImage;
import javax.imageio.*;
import java.awt.Graphics2D;
import java.awt.AlphaComposite;
import java.util.Hashtable;
public class Cache {
  private static Hashtable<String,BufferedImage> cache = new Hashtable<String,BufferedImage>();
  public static BufferedImage load(String filename){
    if(cache.containsKey(filename)){
      return cache.get(filename);
    }
    else{
      BufferedImage img;
      try{
        img = ImageIO.read(ClassLoader.getSystemClassLoader().getResource(filename));
      }
      catch( java.io.IOException e){
        img=null;
        System.out.println("Can't open file: "+filename);
        System.out.println("More info: "+e.getMessage());
      }
      cache.put(filename, img);
      return img;
    }
  }
  public static BufferedImage changeAlpha(BufferedImage url, float transperancy) {
    BufferedImage aimg = new BufferedImage(url.getWidth(), url.getHeight(), BufferedImage.BITMASK);
    Graphics2D g2 = aimg.createGraphics();
    g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, transperancy));
    g2.drawImage(url, null, 0, 0);
    g2.dispose();
    return aimg;
  }
}

zum Lesen den Text mit der Maus markieren
Bild
My Deviantart : )
Spoiler

StepSound Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#==================================
# Step Sound Script
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#==================================
class Game_Player
  # CONFIGS
  STEP_SOUND_VOLUME = 100
  STEP_SOUND_PITCH = 100
  STEP_SOUND_ARRAY=[
                    ["",0], # TERRAIN ID = 0
                    ["test.wav",10], # TERRAIN ID = 1
                    ["",0], # TERRAIN ID = 2
                    ["",0], # TERRAIN ID = 3
                    ["",0], # TERRAIN ID = 4
                    ["",0], # TERRAIN ID = 5
                    ["",0], # TERRAIN ID = 6
                    ["",0], # TERRAIN ID = 7
                    ["",0], # TERRAIN ID = 8
                    ["",0]  # TERRAIN ID = 9
                   ]
  # ENDE CONFIGS
  alias :increase_steps_banannis_shit :increase_steps
  alias :update_banannis_shit :update
  def increase_steps
    increase_steps_banannis_shit
    if @step_countdown == 0
      id = $game_map.terrain_tag(x, y)
      if STEP_SOUND_ARRAY[id][0] != ""
        Audio.se_play("Audio/SE/" + STEP_SOUND_ARRAY[id][0], STEP_SOUND_VOLUME, STEP_SOUND_PITCH)
        @step_countdown=STEP_SOUND_ARRAY[id][1]
      end
    end
  end
  def update
    update_banannis_shit
    if @step_countdown == nil
      @step_countdown=0
    end
    if @step_countdown != 0
      @step_countdown-=1
    end
  end
end


Map Roots

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#==================================
# Map Names & Map Root
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#---------------------------------------------------
# Get Map Name:
#   $game_system.map_names[any_map_id]
# Get Map Root ID:
#   $game_system.parent_map(any_map_id)
#==================================
class Game_System
  attr_reader :map_names
  alias :wtf_bananni_alias_this_game_system_init :initialize
  def initialize
    wtf_bananni_alias_this_game_system_init
    read_map_names
  end
  def parent_map id=$game_map.map_id
    while true
      par=@map_parent[id]
      break if par == 0
      id=par
    end
    return @map_names[id]
  end
  def read_map_names
    map_infos = load_data("Data/MapInfos.rxdata")
    @map_names = Array.new
    @map_parent = Array.new
    for key in map_infos.keys
      @map_names[key] = map_infos[key].name
      @map_parent[key] = map_infos[key].parent_id
    end
  end
end

zum Lesen den Text mit der Maus markieren

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Bananni« (29. Mai 2010, 15:24)


13

Samstag, 29. Mai 2010, 08:45

Hallo,
ist es jetzt gelöst?

LWGJL hat für alle Java Plattformen die nativen Libs, das sollte kein Ding sein.
Und mein Vermuten, wegen der fehlenden Mainklasse ist, dass du es als normale Jar und nicht als ausführbare Jahr exportiert hast.

Wenn man seinen Classloader verbiegt, kann man die nativen Libs auch aus dem jar laden, aber das bringt mehr Probleme, als es löst.
Ressourcen würde ich ins Jar packen und dann über die getRessource bzw. getRessourceAsStream (fürs sounds) laden.

URL kann man über URI in File umwandeln., evtl. noch Protokoll setzen. (Wobei vielen auch die URI zum Arbeiten reicht.)

Ich versteh nicht, was du mit deiner .jar willst. Pack die Dateien in ein Package, erstell in diesem Package eine Klasse und rufe sie dan über <diese klasse>.class.getRessource("res.png") auf ;) Wenn die im unterpackage liegen, dann mit "<unterpackage>/res.png"

Grüße Steve
:information: YAams
:rainbow: Random Signatur
Bild





Weitere Informationen | Download
Mit Support für RGSS Project 1!
Bild

Bananni

Gesperrter Nutzer

  • »Bananni« wurde gesperrt
  • »Bananni« ist der Autor dieses Themas

Motto: Belive the hype!

  • Nachricht senden

14

Samstag, 29. Mai 2010, 15:22

Hi, ja is geschafft : P
Die datein liegen jz alle innerhalb der JAR und werden auch schön geladen,
mein project klappt endlich xD wie ich das gemacht habe is in meinen letzten post ganz unten im spoiler.
is glaub ich so wie du es beschrieben hast. hab den files ordner als package dazu gepackt und lad dann daraus meine res.
danke für die hilfen, ich glaub so langsam hab ichs mit java auch raus xD
Bild
My Deviantart : )
Spoiler

StepSound Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#==================================
# Step Sound Script
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#==================================
class Game_Player
  # CONFIGS
  STEP_SOUND_VOLUME = 100
  STEP_SOUND_PITCH = 100
  STEP_SOUND_ARRAY=[
                    ["",0], # TERRAIN ID = 0
                    ["test.wav",10], # TERRAIN ID = 1
                    ["",0], # TERRAIN ID = 2
                    ["",0], # TERRAIN ID = 3
                    ["",0], # TERRAIN ID = 4
                    ["",0], # TERRAIN ID = 5
                    ["",0], # TERRAIN ID = 6
                    ["",0], # TERRAIN ID = 7
                    ["",0], # TERRAIN ID = 8
                    ["",0]  # TERRAIN ID = 9
                   ]
  # ENDE CONFIGS
  alias :increase_steps_banannis_shit :increase_steps
  alias :update_banannis_shit :update
  def increase_steps
    increase_steps_banannis_shit
    if @step_countdown == 0
      id = $game_map.terrain_tag(x, y)
      if STEP_SOUND_ARRAY[id][0] != ""
        Audio.se_play("Audio/SE/" + STEP_SOUND_ARRAY[id][0], STEP_SOUND_VOLUME, STEP_SOUND_PITCH)
        @step_countdown=STEP_SOUND_ARRAY[id][1]
      end
    end
  end
  def update
    update_banannis_shit
    if @step_countdown == nil
      @step_countdown=0
    end
    if @step_countdown != 0
      @step_countdown-=1
    end
  end
end


Map Roots

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#==================================
# Map Names & Map Root
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#---------------------------------------------------
# Get Map Name:
#   $game_system.map_names[any_map_id]
# Get Map Root ID:
#   $game_system.parent_map(any_map_id)
#==================================
class Game_System
  attr_reader :map_names
  alias :wtf_bananni_alias_this_game_system_init :initialize
  def initialize
    wtf_bananni_alias_this_game_system_init
    read_map_names
  end
  def parent_map id=$game_map.map_id
    while true
      par=@map_parent[id]
      break if par == 0
      id=par
    end
    return @map_names[id]
  end
  def read_map_names
    map_infos = load_data("Data/MapInfos.rxdata")
    @map_names = Array.new
    @map_parent = Array.new
    for key in map_infos.keys
      @map_names[key] = map_infos[key].name
      @map_parent[key] = map_infos[key].parent_id
    end
  end
end

zum Lesen den Text mit der Maus markieren

Yuber

Seher

Motto: Die Welt zu beherrschen.

  • Nachricht senden

15

Donnerstag, 10. Juni 2010, 20:27

Ich hab das selbe Problem. Wenn ich die jar ins Hauptverzeichnis ziehe läuft es wunderbar aber ansonsten wird sie nicht ausgeführt. Auch in der IDE läuft es.
Ich hab ein Package files erstellt und dort meine Ordner eingeführt.
Warscheinlich hab ich einfach den Filepath falsch angegeben?

[JAVA]
Image title = Toolkit.getDefaultToolkit().getImage("./src/files/Bilder/Titel.png");
[/JAVA]

Wenn nicht muss ich die Grafik Ordner eben extern dazufügen.
»Yuber« hat folgende Bilder angehängt:
  • Package.PNG
  • Package 2.PNG
Nur noch selten hier.

'Til now, I always let people walk all over me!
From now on, if anyone makes fun of me, I'll kill 'em! Just like that!

16

Donnerstag, 10. Juni 2010, 21:06

Ein Jar-File ist nur ein Archiv. Schau dir doch einfach mal an, ob in diesem Archiv der src-Ordner überhaupt vorhanden ist. Höchstwahrscheinlich wird deine IDE lediglich die Class-Files in das Jar packen und nichts aus dem src-Ordner.
Bild
RMXP Grundkurs
1 2 3
Ruby/RGSS-Kurs

17

Donnerstag, 10. Juni 2010, 21:23

Hallo,
wie hast du die Jar erstellt? Ausführbar oder nur als .jar? Welche IDE hast du? (NetBeams? Sieht so aus?) zB Eclipse musst du expliztit sagen, dass er bei ausführbaren Jars deine files mitnehmen soll und die obere Methode kommt so nicht mit deiner jar klar, da es ein normales Verzeichnis erwartet. In der IDE ist es kein Problem, da es dort normale Ordner sind.

-> [java] Image title = Toolkit.getDefaultToolkit().getImage("jar:file://"+Main.class.getProtectionDomain().getCodeSource().getLocation().getFile()).getAbsolutePath()+ + "!/" +"./src/files/Bilder/Titel.png"); [/java] (copy & past, musst du noch anpassen.)
-> Normal in den Package struktur einbinden, s.o.
-> extern lagern.

Grüße Steve
:information: YAams
:rainbow: Random Signatur
Bild





Weitere Informationen | Download
Mit Support für RGSS Project 1!
Bild

Bananni

Gesperrter Nutzer

  • »Bananni« wurde gesperrt
  • »Bananni« ist der Autor dieses Themas

Motto: Belive the hype!

  • Nachricht senden

18

Donnerstag, 10. Juni 2010, 21:46

ich hab das ganze so gemacht das der files ordner neben den src ordner im hauptverzeichniss lag.
Dann habe ich im IDE die einstellungen des Projects unter Source geändert sodass er files mit archiviert.
Und dann konnte ich mit den oben genannten methoden( ClassLoader.getSystemClassLoader().getResource(filename); ) die bilder aus den files ordner auslesen, dabei muss man aber files/ im pfad weglassen.
also files/Maps/Map2.tmx wurd dann zu: Maps/Map2.tmx
Oder wenn du die daten im src ordner liegen lassen möchtest würde ich vermuten das wenn du src/ weg lässt, er die daten finded
Bild
Bild
Bild
My Deviantart : )
Spoiler

StepSound Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#==================================
# Step Sound Script
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#==================================
class Game_Player
  # CONFIGS
  STEP_SOUND_VOLUME = 100
  STEP_SOUND_PITCH = 100
  STEP_SOUND_ARRAY=[
                    ["",0], # TERRAIN ID = 0
                    ["test.wav",10], # TERRAIN ID = 1
                    ["",0], # TERRAIN ID = 2
                    ["",0], # TERRAIN ID = 3
                    ["",0], # TERRAIN ID = 4
                    ["",0], # TERRAIN ID = 5
                    ["",0], # TERRAIN ID = 6
                    ["",0], # TERRAIN ID = 7
                    ["",0], # TERRAIN ID = 8
                    ["",0]  # TERRAIN ID = 9
                   ]
  # ENDE CONFIGS
  alias :increase_steps_banannis_shit :increase_steps
  alias :update_banannis_shit :update
  def increase_steps
    increase_steps_banannis_shit
    if @step_countdown == 0
      id = $game_map.terrain_tag(x, y)
      if STEP_SOUND_ARRAY[id][0] != ""
        Audio.se_play("Audio/SE/" + STEP_SOUND_ARRAY[id][0], STEP_SOUND_VOLUME, STEP_SOUND_PITCH)
        @step_countdown=STEP_SOUND_ARRAY[id][1]
      end
    end
  end
  def update
    update_banannis_shit
    if @step_countdown == nil
      @step_countdown=0
    end
    if @step_countdown != 0
      @step_countdown-=1
    end
  end
end


Map Roots

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#==================================
# Map Names & Map Root
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#---------------------------------------------------
# Get Map Name:
#   $game_system.map_names[any_map_id]
# Get Map Root ID:
#   $game_system.parent_map(any_map_id)
#==================================
class Game_System
  attr_reader :map_names
  alias :wtf_bananni_alias_this_game_system_init :initialize
  def initialize
    wtf_bananni_alias_this_game_system_init
    read_map_names
  end
  def parent_map id=$game_map.map_id
    while true
      par=@map_parent[id]
      break if par == 0
      id=par
    end
    return @map_names[id]
  end
  def read_map_names
    map_infos = load_data("Data/MapInfos.rxdata")
    @map_names = Array.new
    @map_parent = Array.new
    for key in map_infos.keys
      @map_names[key] = map_infos[key].name
      @map_parent[key] = map_infos[key].parent_id
    end
  end
end

zum Lesen den Text mit der Maus markieren

Yuber

Seher

Motto: Die Welt zu beherrschen.

  • Nachricht senden

19

Donnerstag, 10. Juni 2010, 21:59

Hallo,
wie hast du die Jar erstellt? Ausführbar oder nur als .jar? Welche IDE hast du? (NetBeams? Sieht so aus?) zB Eclipse musst du expliztit sagen, dass er bei ausführbaren Jars deine files mitnehmen soll und die obere Methode kommt so nicht mit deiner jar klar, da es ein normales Verzeichnis erwartet. In der IDE ist es kein Problem, da es dort normale Ordner sind.
Grüße Steve


Ich hab bei Netbeans Clean and Build Project ausgewählt. Was einstellen konnte ich da nicht.
Ich habe es jetzt mal so wie bei Eirin gemacht. Den files Ordner ins Hauptverzeichnis gepackt und über Properties den Ordner eingefügt.
Dann musste ich das laden nur ändern:

Zitat

getImage("files/Bilder/Titel.png");

Das geht aber trotzdem...

...Nur nicht mit der jar, auch nicht wenn es ich es über Konsole starte. Im TaskManager wird das Programm aber ausgeführt es werden nur nicht die Bilder geladen.

Ich hab mal den Pfad von Abt probiert aber da gibt er mir nur Fehlermeldungen aus.
Nur noch selten hier.

'Til now, I always let people walk all over me!
From now on, if anyone makes fun of me, I'll kill 'em! Just like that!

Bananni

Gesperrter Nutzer

  • »Bananni« wurde gesperrt
  • »Bananni« ist der Autor dieses Themas

Motto: Belive the hype!

  • Nachricht senden

20

Donnerstag, 10. Juni 2010, 22:21

Ich weiß zwar ned wie die getImage() methode funktioniert aber ich würde das hier mal ausprobieren:
(Wenn du den files ordner so liegen hast wie ich)
getImage("Bilder/Titel.png");
oder:
getImage(ClassLoader.getSystemClassLoader().getResource("Bilder/Titel.png").getFile());
Bild
My Deviantart : )
Spoiler

StepSound Script:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#==================================
# Step Sound Script
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#==================================
class Game_Player
  # CONFIGS
  STEP_SOUND_VOLUME = 100
  STEP_SOUND_PITCH = 100
  STEP_SOUND_ARRAY=[
                    ["",0], # TERRAIN ID = 0
                    ["test.wav",10], # TERRAIN ID = 1
                    ["",0], # TERRAIN ID = 2
                    ["",0], # TERRAIN ID = 3
                    ["",0], # TERRAIN ID = 4
                    ["",0], # TERRAIN ID = 5
                    ["",0], # TERRAIN ID = 6
                    ["",0], # TERRAIN ID = 7
                    ["",0], # TERRAIN ID = 8
                    ["",0]  # TERRAIN ID = 9
                   ]
  # ENDE CONFIGS
  alias :increase_steps_banannis_shit :increase_steps
  alias :update_banannis_shit :update
  def increase_steps
    increase_steps_banannis_shit
    if @step_countdown == 0
      id = $game_map.terrain_tag(x, y)
      if STEP_SOUND_ARRAY[id][0] != ""
        Audio.se_play("Audio/SE/" + STEP_SOUND_ARRAY[id][0], STEP_SOUND_VOLUME, STEP_SOUND_PITCH)
        @step_countdown=STEP_SOUND_ARRAY[id][1]
      end
    end
  end
  def update
    update_banannis_shit
    if @step_countdown == nil
      @step_countdown=0
    end
    if @step_countdown != 0
      @step_countdown-=1
    end
  end
end


Map Roots

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#==================================
# Map Names & Map Root
#---------------------------------------------------
# @Autor Bananni
# @Date 07/08/2010
#---------------------------------------------------
# Get Map Name:
#   $game_system.map_names[any_map_id]
# Get Map Root ID:
#   $game_system.parent_map(any_map_id)
#==================================
class Game_System
  attr_reader :map_names
  alias :wtf_bananni_alias_this_game_system_init :initialize
  def initialize
    wtf_bananni_alias_this_game_system_init
    read_map_names
  end
  def parent_map id=$game_map.map_id
    while true
      par=@map_parent[id]
      break if par == 0
      id=par
    end
    return @map_names[id]
  end
  def read_map_names
    map_infos = load_data("Data/MapInfos.rxdata")
    @map_names = Array.new
    @map_parent = Array.new
    for key in map_infos.keys
      @map_names[key] = map_infos[key].name
      @map_parent[key] = map_infos[key].parent_id
    end
  end
end

zum Lesen den Text mit der Maus markieren

Social Bookmarks