Вот мое решение, не идеальное, но оно работает. После многих тестов я просто чувствую, что использование точечной нотации для перехода в текущий каталог не работает точно так, как ожидалось при использовании базовых утилит java. Закончилось только тем, что я получил путь к проекту и разделил его там, где я хотел, еще не тестировался на других машинах.
private static JButton createToolButton(String imgName, String altText, String toolTipText)
{
String imagePath = IMG_FOLDER_NAME + "\\" + imgName;
BufferedImage img = null;
JButton button = new JButton();
try
{
img = ImageIO.read(new File(projectPath() + imagePath));
}
catch (IOException e)
{
e.printStackTrace();
}
button.setToolTipText(toolTipText);
if(img != null)
button.setIcon(new ImageIcon(img, altText));
else
button.setText(altText);
return button;
}
private static String projectPath()
{
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL url = classLoader.getResource("");
String pathArr[] = url.getPath().split(PATH_SEPARATOR);
return pathArr[0];
}