如何获取.jar文件所在目录的位置



我正试图从一个文件夹中读取一些图像文件,其中.jar文件正在运行。我想知道如何得到目录的路径。我正在尝试做这样的事情。

protected void updateLabel(String name){
    File f = new File("*path where the .jar file is being run from/tmspictures/" + name + ".jpg");
    if(f.exists()){
        ImageIcon icon = new ImageIcon("*path where the .jar file is being run from/tmspictures/" + name + ".jpg);
        Image img = icon.getImage(); 
        Image newimg = img.getScaledInstance(lbl_pic.getWidth(), lbl_pic.getHeight(),  java.awt.Image.SCALE_SMOOTH);
        icon = new ImageIcon(newimg);
        lbl_pic.setIcon(icon);
        lbl_pic.setText(null);
    }
    else{
        lbl_pic.setText("Image not found");
        lbl_pic.setIcon(null);
    }
}

因此,如果jar文件从C:/Users/xerof_000/Desktop/TMS.jar运行,那么图片应该从C:/Users/xerof_000/Desktop/tmspictures/image.jpg读取,我在stackoverflow上找到了一种方法,但这也返回了目录的文件名。我不想剪掉那部分然后用URL。有人能建议一个简单易行的方法吗?谢谢。

我相信你可以只使用路径./tmspictures/image.jpg,它将工作。运行jar文件会将工作目录设置为jar所在的路径,因此您可以从那里移动。

最新更新