I write java in netbeans.I want to move files and create files.When I run the program on netbeans it works. Files creates and moved. But when I run program on the jar it doesnot copy or move. I give permisson jar and files for read , write. But it does not works.And I open jar with root user. how can i fix this?
this is my code to copy
package aaa;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class MoveFolder
{
public int copy(String from,String where )
{
int onay=0;
File srcFolder = new File(from);
File destFolder = new File(where);
//make sure source exists
if(!srcFolder.exists()){
System.out.println("Directory does not exist.");
onay = -1;
// JOptionPane.showMessageDialog(null, "Directory does not exist.");
}else{
try{
copyFolder(srcFolder,destFolder);
}catch(IOException e){
e.printStackTrace();
onay = -1;
// JOptionPane.showMessageDialog(null, "Was not Copied.");
}
}
System.out.println("Done");
return onay;
}
public void copyFolder(File src, File dest)
throws IOException{
if(src.isDirectory()){
//if directory not exists, create it
if(!dest.exists()){
dest.mkdir();
System.out.println("Directory copied from "
+ src + " to " + dest);
// JOptionPane.showMessageDialog(null, "Directory copied from " + src + " to " + dest);
}
//list all the directory contents
String files[] = src.list();
for (String file : files) {
//construct the src and dest file structure
File srcFile = new File(src, file);
File destFile = new File(dest, file);
//recursive copy
copyFolder(srcFile,destFile);
}
}else{
//if file, then copy it
//Use bytes stream to support all file types
InputStream in = new FileInputStream(src);
OutputStream out = new FileOutputStream(dest);
byte[] buffer = new byte[1024];
int length;
//copy the file content in bytes
while ((length = in.read(buffer)) > 0){
out.write(buffer, 0, length);
}
in.close();
out.close();
System.out.println("File copied from " + src + " to " + dest);
// JOptionPane.showMessageDialog(null, "File copied from " + src + " to " + dest);
}
}
}
Why are you copying files with IO streams? Why not just do
Also, you need read and write permissions on the files you’re trying to move (to), not on the jars you’re executing …