Buonasera,
Sto avendo un problema enorme da tre giorni e non riesco a risolverlo
Dovrei inserire un immagine in una cartella chiamata /risorse , contenuto nella src di un file eseguibile java.
Questi sono i vari codici che ho utilizzato


Parte di codice della classe "FrameInserisciDisciplina
# sfoglia.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {
{
JFileChooser fc = new JFileChooser();
int sel = fc.showOpenDialog(frame);
if (sel == JFileChooser.APPROVE_OPTION) {

pathprecedente=(fc.getSelectedFile().getPath());
nomefile=(fc.getSelectedFile().getName());
percorso =("risorse");
path=percorso+"/"+nomefile;

immagine.setText(nomefile);


}}}});


JPanel PanelBottom = new JPanel();
PanelBottom.setLayout(new GridBagLayout());
PanelBottom.setBackground(new Color (255,185,0));

JButton btninsdisc = new JButton(im);
JLabel lbl= new JLabel();

VariListener.SettaBtn(PanelBottom, btninsdisc, lbl,"Inserisci disciplina", 1, 1,im2,true);

btninsdisc.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {

if(textnomed.getText().isEmpty()||descr.getText(). isEmpty()){
if(textnomed.getText().isEmpty())
{
lblNomeD.setForeground(Color.RED);
lblNomeD.setFont(new Font("Tahoma", Font.BOLD, 20));
lblErrNome.setText("Il campo è vuoto");
lblErrNome.setVisible(true);

}
if(descr.getText().isEmpty())
{
lblDesc.setForeground(Color.RED);
lblDesc.setFont(new Font("Tahoma", Font.BOLD, 20));
lblErrNome2.setText("Il campo è vuoto");
lblErrNome2.setVisible(true);
}
}

else
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"path im="+path + " nomefile = "+nomefile + " pathprec ="+pathprecedente);
bool=GestioneDAO.inserimentodisc(textnomed.getText (),descr.getText(),combocal.getSelectedItem().toSt ring(),path,nomefile,pathprecedente);


if(bool)
{
frame.setVisible(false);
frame.dispose();
FrameGestione.frame.dispose();
new FrameGestione();

}

}

})


;

contentPane.add(Panel2,BorderLayout.NORTH);
contentPane.add(PanelBottom,BorderLayout.CENTER);

#

ClassiDAO.InserimentoDisciplina
#
public static boolean inserimentodisc ( String dis ,String desc,String cal,String pathim,String nomefile,String pathprec) throws URISyntaxException{


Connection con = DbConnection.db;
Connection con2 = DbConnection.db;
Statement st,st2;
ResultSet rs;


try {
st = con.createStatement();
st2 = con2.createStatement();


rs= st.executeQuery("SELECT disciplina.nomedisciplina FROM disciplina WHERE nomedisciplina ='"+dis+"' ; ");

if(rs.next())
JOptionPane.showMessageDialog(null, "La disciplina "+dis+" è già stata creata, inserirne un' altra"," ",JOptionPane.WARNING_MESSAGE);

else{


VariListener.TraferisciFile(pathprec, pathim);





}}
catch (SQLException ex) {
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame, ex);
}
return false;


}


#

VariListener.TraferisciFile

#

public static void TraferisciFile(String inizio,String fine)
{
InputStream inStream = null;
OutputStream outStream = null;
try{

File afile =new File(inizio);
File bfile =new File(fine);


URL path=null;
if(bfile.exists()){

try
{
// mostriamo il percorso al file

URI pathy = ClassLoader.getSystemResource(fine).toURI();
path = pathy.toURL();
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"fine" + fine);
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"pathy" + pathy);
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"Il doc si trova nel percorso" + path);

bfile=new File(path.getFile());
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"Nome del file " + bfile);
System.out.println("Nome del file " + bfile);
int i;

// apriamo lo stream di input...
InputStream is=path.openStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
// ...e avviamo la lettura del file con un ciclo
do
{
i=br.read();
System.out.println((char)i);
}
while (i!=-1);
is.close();
}

// intercettiamo eventuali eccezioni
catch (MalformedURLException e)
{
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"Attenzione:" + e);

}
catch (IOException e)
{
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"Attenzione IO:" + e);

} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"Immagine"+"path im="+fine + " pathprec ="+inizio);
inStream = new FileInputStream(afile);
outStream = new FileOutputStream(bfile);
byte[] buffer = new byte[1024];
int length;
//copy the file content in bytes
while ((length = inStream.read(buffer)) > 0){
outStream.write(buffer, 0, length);

inStream.close();
outStream.close();


JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"successo!");
}else{
JOptionPane.showMessageDialog(FrameInserisciDiscip lina.frame,"file inesistente");
}
}catch(IOException e){
e.printStackTrace();
}
}
#
Da notare la struttura del Progetto


PorgettoSportivo/src/risorse



Quale può essere il problema?
Ci sono altri modi per inserire i file in queste benedette cartelle negli eseguibili?