java - File Copier keeps failing(caught the error, no error code) -


i've been making installer few of friends adding mods minecraft.
created method(inside class filehandling) called filechoosercheck. gets directory installation defined user jfilechooser , sets moddir, or, if user doesn't specify, sets installation directory default directory, file 'defaultdir'. whenever run method filechoosercheck, doesn't change path moddir, when try call it(moddir) returns null.

how can make filechoosercheck changes path moddir? also, why installation failing?( removed moddir altogether , set path manually , still failed)

if see in code sloppy and/or could/needs improved please tell me, i've been programming swing few days, , java week[i know 1 other programming language[which pretty basic)]

main class

import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.io.file; import java.io.ioexception; import java.net.uri; import java.net.url; import java.nio.file.path;  import javax.swing.*;  public class maininstaller extends jframe {     private final long serialversionuid = 1l;      string moddir;     path moddir;     uri bioforums = uri.create("http://bio-mc.com/forum");     uri thread = uri.create("http://google.com");     string username = system.getproperty("user.name");     string mcdir = "c://users//" + username + "//appdata//roaming//.minecraft";     file defaultdir = new file("c://users//" + username +          "//appdata//roaming//.minecraft");     font consolefont = new font("", font.plain, 13 + 1/2);     font checkfont = new font("", font.plain, 14 + 1/2);     string[] minimapsarray = { "rei's minimap", "zan's minimap" }; //an array of optifine versions, manually later     object minimap;     int yinterval = 22;     boolean enabled = false;     boolean optifine, invtweaks, armorhud, statuseffecthud, tabbychat, spc, chatbubbles, map = true;     boolean fclaunched = false;      jpanel installpanel, modspanel, consolepanel;     box box, box1;     jlabel title;     jlabel modsel;     jlabel author;     jtabbedpane tabbedpane = new jtabbedpane();     jcombobox<?> minimaps; //the drop down menus select versions of optifine , invtweaks     jbutton installbutton;     jbutton filebutton, forumbutton, threadbutton;     jtextarea console;     jtextfield mcdir;      jfilechooser fc;      public maininstaller() { //maininstaller constructor         super("blackcrew modpack installer"); //sets title of frame          //defines title bit more , adds box         box = box.createverticalbox();         title = new jlabel("blackcrew modpack");         title.setfont(new font("impact", font.plain, 38 + 1/2));         title.setalignmentx(center_alignment);         box.add(title);          //the first tab(installer)         installpanel = new jpanel();         installpanel.setlayout(null);         insets insets = installpanel.getinsets();         installbutton = new jbutton("install!");         installbutton.setfont(new font("", font.plain, 20));         dimension size = installbutton.getpreferredsize();          mcdir = new jtextfield();         mcdir.settext("c:/users/" + username + "/appdata/roaming/.minecraft");         mcdir.setfont(new font("", font.plain, 13));         size = mcdir.getpreferredsize();         mcdir.setbounds(139 + insets.left, 80 + insets.top, size.width + 5,    size.height);         mcdir.seteditable(false);          filebutton = new jbutton("...");         size = filebutton.getpreferredsize();         filebutton.setbounds(mcdir.getx() + 280, mcdir.gety() - 1 + insets.top, size.width, size.height + 3);            filebutton.addactionlistener(new actionlistener(){             public void actionperformed(actionevent e) {                 fclaunched = true;                 //create filechooser , define bit                     if (fc == null) {                         fc = new jfilechooser("c://users//" + username + "//appdata//roaming//.minecraft");                             fc.setfileselectionmode(jfilechooser.directories_only);                     }                  //show file chooser                 int returnval = fc.showopendialog(filebutton);                  fc.setselectedfile(defaultdir);                  //moddir = moddir.topath();                  //process results                 if(returnval == jfilechooser.approve_option) {                     mcdir.settext(fc.getselectedfile().getpath());                 }              }         });          forumbutton = new jbutton("<html><font color=green>biocraft</font> <font  color=black>forums</font></html>");         forumbutton.setfont(new font("", font.plain, 13));         size = forumbutton.getpreferredsize();         forumbutton.setbounds(1 - 1/2 + insets.left, 10 + insets.top, size.width, size.height);         forumbutton.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 try {                     desktop.getdesktop().browse(bioforums);                 } catch (ioexception e1) {                     e1.printstacktrace();                     system.out.println("failed launch biocraft forums");                 }             }         });          threadbutton = new jbutton("<html><font color=blue>installer</font> <font color=black>thread</font></html>");         threadbutton.setfont(new font("", font.plain, 13));         size = threadbutton.getpreferredsize();         threadbutton.setbounds(459 + insets.left, forumbutton.gety() + insets.top, size.width, size.height);         threadbutton.addactionlistener(new actionlistener() {             public void actionperformed(actionevent arg0) {                 try {                     desktop.getdesktop().browse(thread);                 } catch (ioexception e) {                     e.printstacktrace();                     system.out.println("failed launch installer thread");                 }             }         });          author = new jlabel("<html><font color=black>developed by</font> <font color=red>n1ghtk1n9</font></html>");         author.setfont(new font("", font.plain, 13));         author.setforeground(color.red);         author.setbounds(235 + insets.left, 1 + insets.top, size.width + 20, size.height);          installbutton.setbounds(139 + insets.left, mcdir.gety() + 50 + insets.top, mcdir.getwidth() + filebutton.getwidth(), size.height + 40);          installpanel.add(author);         installpanel.add(forumbutton);         installpanel.add(threadbutton);         installpanel.add(installbutton);         installpanel.add(mcdir);         installpanel.add(filebutton);          //the second tab(mod selection)         modspanel = new jpanel();         modspanel.setlayout(null);         insets = modspanel.getinsets();         jlabel modsel = new jlabel("select mods installed");         modsel.setfont(new font("", font.bold, 15));         size = modsel.getpreferredsize();         modsel.setbounds(5 + insets.left, 2 + insets.top, size.width + 15, size.height);           //adds mod checkboxes         jcheckbox optibox = new jcheckbox("optifine");         optibox.setfont(checkfont);         size = optibox.getpreferredsize();         optibox.setbounds(2 + 1/2 + insets.left, 2 + yinterval + insets.top, size.width, size.height); //y = 23         optibox.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 optifine = !optifine;             }         });          jcheckbox invbox = new jcheckbox("invtweaks");         invbox.setfont(checkfont);         size = invbox.getpreferredsize();         invbox.setbounds(2 + 1/2 + insets.left, 2 + (yinterval*2) + 1/2 + insets.top, size.width, size.height); //y = 44         invbox.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 invtweaks = !invtweaks;             }         });          jcheckbox armorhudbox = new jcheckbox("armor hud"); //also automatically installs bspkrs-core         armorhudbox.setfont(checkfont);         size = armorhudbox.getpreferredsize();         armorhudbox.setbounds(2 + 1/2 + insets.left, 2 + (yinterval*3) + insets.top, size.width, size.height); //y = 65         armorhudbox.settooltiptext("also installs 'bskprs core'");         armorhudbox.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 armorhud = !armorhud;             }         });          jcheckbox statusbox = new jcheckbox("status effect hud"); //also automatically installs bspkrs-core         statusbox.setfont(checkfont);         size = statusbox.getpreferredsize();         statusbox.setbounds(2 + 1/2 + insets.left, 2 + (yinterval*4) + insets.top, size.width, size.height); //y = 86         statusbox.settooltiptext("also installs 'bskprs core'");         statusbox.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 statuseffecthud = !statuseffecthud;             }         });          jcheckbox tabbybox = new jcheckbox("tabbychat");         tabbybox.setfont(checkfont);         size = tabbybox.getpreferredsize();         tabbybox.setbounds(2 + 1/2 + insets.left, 2 + (yinterval*5) + insets.top, size.width, size.height); //y = 108         tabbybox.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 tabbychat = !tabbychat;              }         });          jcheckbox spcbox = new jcheckbox("singleplayercommands");         spcbox.setfont(checkfont);         size = spcbox.getpreferredsize();         spcbox.setbounds(2 + 1/2 + insets.left, 2 + (yinterval*6) + insets.top, size.width, size.height);         spcbox.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 spc = !spc;              }         });          jcheckbox mapbox = new jcheckbox("minimap");         mapbox.setfont(checkfont);         size = mapbox.getpreferredsize();         mapbox.setbounds(2 + 1/2 + insets.left, 2 + (yinterval*7) + insets.top, size.width, size.height);         //map = mapbox.isselected();         mapbox.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 enabled = !enabled;                 minimaps.setenabled(enabled);                 map = !map;              }         });          jcheckbox bubblebox = new jcheckbox("chat bubbles");         bubblebox.setfont(checkfont);         size = bubblebox.getpreferredsize();         bubblebox.setbounds(2 + 1/2 + insets.left, 2 + (yinterval*8) + insets.top, size.width, size.height);         bubblebox.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 chatbubbles = !chatbubbles;              }         });          minimaps = new jcombobox<object>(minimapsarray);         minimaps.setfont(checkfont);         size = minimaps.getpreferredsize();         minimaps.setbounds(83 + insets.left, 7 - 31/32 - 1/32 + (yinterval*7) + insets.top, size.width, size.height - 6 - 1/2);         minimaps.setenabled(false);         minimap = minimaps.getselecteditem();          //the third tab(console)         consolepanel = new jpanel();         consolepanel.setlayout(null);         console = new jtextarea("launched blackcrew modpack installer!", 600, 400);         console.setfont(new font("", font.plain, 13 + 1/2));         console.setbounds(0, 0, 600, 400);         console.seteditable(false);         console.setwrapstyleword(true);         console.setlinewrap(true);          consolepanel.add(console);         console.setcaretposition(console.getdocument().getlength());          modspanel.add(modsel);         modspanel.add(optibox);         modspanel.add(invbox);         modspanel.add(armorhudbox);         modspanel.add(statusbox);         modspanel.add(tabbybox);         modspanel.add(mapbox);         modspanel.add(spcbox);         modspanel.add(bubblebox);         modspanel.add(minimaps);          tabbedpane.addtab("installer", installpanel);         tabbedpane.addtab("mod selection", modspanel);         tabbedpane.addtab("console", consolepanel);          //add frame         add(box, borderlayout.north);         add(tabbedpane);     }      public static void main(string[] args) throws ioexception { //main method         try {             uimanager.setlookandfeel(uimanager.getsystemlookandfeelclassname());          } catch(unsupportedlookandfeelexception e) {             e.printstacktrace();          } catch (classnotfoundexception e) {             e.printstacktrace();          } catch (instantiationexception e) {             e.printstacktrace();          } catch (illegalaccessexception e) {             e.printstacktrace();          }          final maininstaller frame = new maininstaller();         insets insets = frame.getinsets();         frame.setdefaultcloseoperation(exit_on_close);         frame.setsize(600, 400);         frame.setlocationrelativeto(null);         frame.setvisible(true);         frame.setresizable(false);          final filehandling file = new filehandling();         file.createbasefolder();          frame.installbutton.addactionlistener(new actionlistener() {             public void actionperformed(actionevent e) {                 if(frame.optifine == false && frame.invtweaks == false && frame.armorhud == false && frame.chatbubbles == false && frame.spc == false && frame.statuseffecthud == false) {                     joptionpane.showmessagedialog(frame, "no mods enabled");                 } else {                     // (?) install mods here?                     try {                         file.copymods();                         system.out.println("installing mods");                         system.out.println("source: " + file.invsource);                         system.out.println("target:" + file.invtarget);                      } catch (ioexception e1) {                         e1.printstacktrace();                         system.out.println("error!" + e);                      }                 }             }});     } } 

filehandling class

import javax.swing.*; import java.awt.*; import java.io.*; import java.nio.file.*; import java.nio.file.standardcopyoption.*;  public class filehandling {     maininstaller mi = new maininstaller();      path moddir = mi.moddir;     path source = paths.get("c://users//gannon//desktop//java//workspace//modpack installer//test.txt");     path target = paths.get("c://users");      path invsource = paths.get("mods//invtweaks.jar");     path invtarget = paths.get(mi.moddir + "//inventorytweaks-mc1.6.2-1.55-b56.jar");      public void createbasefolder() {         try {             system.out.println(mi.moddir);          } catch(exception e) {             system.out.println("folder creation failed!"); // (?)remove ,   replace in-program error          }     }      public void filechoosercheck() {         if(mi.fclaunched == false) {             mi.moddir = mi.defaultdir.topath();             system.out.println("unchanged: " + mi.moddir);         } else if(mi.fclaunched == true) {             mi.moddir = mi.fc.getselectedfile().topath();             system.out.println("changed: " + mi.moddir);         }     }      public void copymods() throws ioexception {         filechoosercheck();         try {             if(mi.invtweaks == true) {                 files.copy(invsource, invtarget);                 system.out.println("trying copy!");             }          } catch (ioexception e) {             system.out.println("the copying failed!" + e);         }     } } 

you have used 2 forward slashes in path (//):

("c://users//gannon//desktop//java//workspace//modpack installer//test.txt"); 

use single forward slash or use 2 backward slashes because need escape (\\).
hope helps.


Comments

Popular posts from this blog

javascript - DIV "hiding" when changing dropdown value -

Does Firefox offer AppleScript support to get URL of windows? -

android - How to install packaged app on Firefox for mobile? -