dimanche 3 mai 2015

Java: Installer für Mods programmieren

Hi,

ich bin momentan dabei einen Installer in Java zu programmieren, allerdings komme ich jetzt gerade nicht mehr weiter.
Bisher habe ich schon dies programmiert (Ich verwende übrigens Java 8):

Java Code:

  1.  
  2. import java.io.File;
  3. import java.util.Locale;
  4.  
  5. import javax.swing.JFrame;
  6. import javax.swing.JProgressBar;
  7. import javax.swing.SwingWorker;
  8.  
  9. public class Installer
  10. {
  11.  
  12. private static JFrame frame;
  13. public static JProgressBar progressBar;
  14.  
  15. public static void main(String[] args)
  16. {
  17. frame = new JFrame("ModPack - Installer");
  18. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  19. frame.setSize(400, 300);
  20. frame.setLocationRelativeTo(null);
  21. frame.setLayout(null);
  22.  
  23. progressBar = new JProgressBar(0, 100);
  24. progressBar.setBounds(40, 60, 300, 30);
  25. progressBar.setValue(0);
  26.  
  27. frame.add(progressBar);
  28. frame.setVisible(true);
  29.  
  30. Task task = new Task();
  31. task.execute();
  32. }
  33.  
  34. private static File getPath()
  35. {
  36. String userHomeDir = System.getProperty("user.home", ".");
  37. String osType = System.getProperty("os.name").toLowerCase(Locale.ENGLISH);
  38. File targetDir = null;
  39. String mcDir = ".minecraft\\mods";
  40.  
  41. if(osType.contains("win") && System.getenv("APPDATA") != null)
  42. targetDir = new File(System.getenv("APPDATA"), mcDir);
  43. else if(osType.contains("mac"))
  44. targetDir = new File(new File(new File(userHomeDir, "Library"),"Application Support"),"minecraft");
  45. else
  46. targetDir = new File(userHomeDir, mcDir);
  47.  
  48. if(!targetDir.exists() || !targetDir.isDirectory() || !targetDir.canWrite())
  49. targetDir.mkdir();
  50.  
  51. return targetDir;
  52. }
  53.  
  54. class Task extends SwingWorker<Void, Void>
  55. {
  56.  
  57. @Override
  58. public Void doInBackground()
  59. {
  60. setProgress(0);
  61.  
  62. // Copy Files
  63.  
  64.  
  65. return null;
  66. }
  67.  
  68. @Override
  69. public void done()
  70. {
  71. System.exit(0);
  72. }
  73. }
  74. }


Nun stehe ich aber vor dem Problem, dass ich bei
Java Code:

  1. Task task = new Task();

ein Fehler erhalte und zudem weiß ich auch nicht wie ich dass jetzt mit der ProgressBar hinbekomme und wie ich die Dateien, die ich gerne in die .jar hineinpacken möchte von A nach B kopiere (also aus der Installer.jar raus in den Mods-Folder von Minecraft der erstellt werden soll wenn dieser nicht vorhanden ist).
Zudem wäre vielleicht eine Anzeige mit der Zeit die noch verbleicht und wie viel GB/MB schon rüberkopiert worden sind von der gesammten Dateigröße aller Dateien hilfreich.

Ich hoffe ihr könnt mir hierbei helfen und hoffentlich schaffe ich es diesmal. (ich hatte im Laufe der Zeit schon mehrmals die selbe Frage, bin bisher immer am selben Punkt gescheitert: SwingWorkers ... nun ja, die SwingWorkers sind auch der Grund warum ich momentan C++ lerne, nur leider bin ich noch nicht soweit um den Installer in C++ zu programmieren [Witzigerweise sind die SwingWorker der einzige Grund warum ich C++ lerne xD, hoffe ja mal dass es in C++ leichter sein wird])

JavaGamer


Java: Installer für Mods programmieren

0 commentaires:

Enregistrer un commentaire