Index: main/LostHavenRPG.java
===================================================================
--- main/LostHavenRPG.java	(revision b2d7893da9fa84a56da5703be7a5610992874d30)
+++ main/LostHavenRPG.java	(revision 4d8825f3fe1264280fc968b1d8b39bd7983a64c1)
@@ -385,5 +385,5 @@
     creatureMap = new HashMap<CreatureType, Creature>();
     try {
-      BufferedReader in = new BufferedReader(new FileReader("creatures.txt"));
+      BufferedReader in = Utils.loadTextFile("creatures.txt");
       while (in.ready()) {
         Creature cr = Creature.loadTemplate(in);
@@ -405,5 +405,5 @@
     spawnPoints = new LinkedList<SpawnPoint>();
     try {
-      BufferedReader in = new BufferedReader(new FileReader("spawnPoints.txt"));
+      BufferedReader in = Utils.loadTextFile("spawnPoints.txt");
       while (in.ready()) {
         Creature type = creatureMap.get(CreatureType.valueOf(in.readLine()));
@@ -440,5 +440,5 @@
       imgBow[6] = ImageIO.read(getClass().getResource("/images/projectiles/bowWW.png"));
       imgBow[7] = ImageIO.read(getClass().getResource("/images/projectiles/bowNW.png"));
-      BufferedReader in = new BufferedReader(new FileReader("items.txt"));
+      BufferedReader in = Utils.loadTextFile("items.txt");
       while (in.ready()) {
         Item item;
Index: main/Map.java
===================================================================
--- main/Map.java	(revision b2d7893da9fa84a56da5703be7a5610992874d30)
+++ main/Map.java	(revision 4d8825f3fe1264280fc968b1d8b39bd7983a64c1)
@@ -68,5 +68,5 @@
           }
         }
-        BufferedReader in = new BufferedReader(new FileReader(structFile));
+        BufferedReader in = Utils.loadTextFile(structFile);
         String str;
         while ((str = in.readLine()) != null) {
Index: main/Utils.java
===================================================================
--- main/Utils.java	(revision 4d8825f3fe1264280fc968b1d8b39bd7983a64c1)
+++ main/Utils.java	(revision 4d8825f3fe1264280fc968b1d8b39bd7983a64c1)
@@ -0,0 +1,21 @@
+package main;
+
+import java.io.IOException;
+import java.io.FileReader;
+import java.io.InputStreamReader;
+import java.io.BufferedReader;
+
+public class Utils {
+    private static boolean RUNNING_FROM_JAR = true;
+    private static Utils classLoaderReference = null;
+
+    public static BufferedReader loadTextFile(final String fileName) throws IOException {
+        if (Utils.RUNNING_FROM_JAR) {
+            if (Utils.classLoaderReference == null) {
+                Utils.classLoaderReference = new Utils();
+            }
+            return new BufferedReader(new InputStreamReader(Utils.classLoaderReference.getClass().getResourceAsStream("/" + fileName)));
+        }
+        return new BufferedReader(new FileReader(fileName));
+    }
+}
Index: makefile
===================================================================
--- makefile	(revision b2d7893da9fa84a56da5703be7a5610992874d30)
+++ makefile	(revision 4d8825f3fe1264280fc968b1d8b39bd7983a64c1)
@@ -1,5 +1,5 @@
 GAMEGUI_DEPS = gamegui/Align.class gamegui/Animation.class gamegui/Button.class gamegui/Label.class gamegui/Listable.class gamegui/Member.class gamegui/MultiTextbox.class gamegui/ScrollBar.class gamegui/ScrollList.class gamegui/Textbox.class gamegui/Window.class
 
-MAIN_DEPS = main/Action.class main/AreaOfEffect.class main/ArtifactPoint.class main/AttackType.class main/Attribute.class main/AuxState.class main/ChangeDamage.class main/Confuse.class main/Creature.class main/CreatureType.class main/Damage.class main/Direction.class main/Disable.class main/GameState.class main/Effect.class main/EffectType.class main/EquippedWeapon.class main/Gem.class main/Item.class main/ItemDrop.class main/ItemType.class main/Land.class main/LandType.class main/Location.class main/LostHavenRPG.class main/ManaDrain.class main/Map.class main/MapElement.class main/Model.class main/MoveSpeed.class main/Penetrate.class main/Player.class main/Point.class main/ProjectileSpeed.class main/RespawnPoint.class main/Skill.class main/SpawnPoint.class main/Structure.class main/StructureType.class main/TargetType.class main/TimedEffect.class main/Weapon.class
+MAIN_DEPS = main/Action.class main/AreaOfEffect.class main/ArtifactPoint.class main/AttackType.class main/Attribute.class main/AuxState.class main/ChangeDamage.class main/Confuse.class main/Creature.class main/CreatureType.class main/Damage.class main/Direction.class main/Disable.class main/GameState.class main/Effect.class main/EffectType.class main/EquippedWeapon.class main/Gem.class main/Item.class main/ItemDrop.class main/ItemType.class main/Land.class main/LandType.class main/Location.class main/LostHavenRPG.class main/ManaDrain.class main/Map.class main/MapElement.class main/Model.class main/MoveSpeed.class main/Penetrate.class main/Player.class main/Point.class main/ProjectileSpeed.class main/RespawnPoint.class main/Skill.class main/SpawnPoint.class main/Structure.class main/StructureType.class main/TargetType.class main/TimedEffect.class main/Utils.class main/Weapon.class
 
 GAMEGUI_INNER_DEPS = gamegui/Button\$$1.class gamegui/Label\$$1.class
@@ -9,8 +9,8 @@
 
 IMAGE_FILE_DEPS = images/*.png images/*/*.png images/*/*/*.png
-MAP_FIL_DEPS =
+DATA_FILE_DEPS = creatures.txt items.txt spawnPoints.txt structInfo2.txt
 
 CLASS_DEPS = $(MAIN_DEPS) $(GAMEGUI_DEPS)
-FILE_DEPS = $(IMAGE_FILE_DEPS) $(MAP_FILE_DEPS)
+FILE_DEPS = $(IMAGE_FILE_DEPS) $(DATA_FILE_DEPS)
 
 LostHaven: $(CLASS_DEPS) $(FILE_DEPS)
