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));
+    }
+}
