只有導出的可執行文件Jar文件存在問題。整個項目在eclipse中工作正常,但是當從命令提示符導出並運行時出現以下錯誤 可執行文件Jar文件將不會運行:命令提示符中的錯誤
我認爲它無法找到其中一個圖像,但不明白爲什麼它會拋出jar文件中的錯誤,而不是在eclipse中運行時的項目。該項目有一個runner類,它打開包含smallframe類的主頁面。這些都在GUI軟件包中,所用的所有圖像都在src/Resources文件夾中。
任何建議看哪裏最受歡迎。
編輯:只是更改所有圖像的代碼,但得到一些錯誤的一些「無法從類型對象的非靜態方法getClass()靜態引用」所以使用類名稱「GenerateImages.class 「而不是getClass()。這在Eclipse中工作,但似乎沒有在可執行Jar文件中工作。
已經把代碼createQuestionOne下面,只是想知道我做了一些錯誤:因爲在簡單的詞所處的環境,它被執行
public static void createQuestionOne(int startShape, int endShape, String symbols, int scenarioNum, String fileSaveLocation) throws IOException
{
//shapes
final BufferedImage shapeLeft = ImageIO.read(GenerateImages.class.getClassLoader().getResource(startShape + ".png"));
final BufferedImage shapeRight = ImageIO.read(GenerateImages.class.getClassLoader().getResource(endShape + ".png"));
final BufferedImage questionMark = ImageIO.read(GenerateImages.class.getClassLoader().getResource("questionMark.png"));
//arrows
final BufferedImage rightArrow = ImageIO.read(GenerateImages.class.getClassLoader().getResource("rightArrow.png"));
//Transformations
final BufferedImage transform1 = ImageIO.read(GenerateImages.class.getClassLoader().getResource(symbols.substring(0,1)+ ".png"));
//
final BufferedImage none = ImageIO.read(GenerateImages.class.getClassLoader().getResource("None.png"));
final int width = 60;
final int height = 90;
final int smallWidth = 34;
final BufferedImage questionLayout = new BufferedImage(5*width,height,BufferedImage.TYPE_INT_RGB);
Graphics2D reDraw = questionLayout.createGraphics();
//set background to white
reDraw.setColor(Color.WHITE);
reDraw.fillRect(0, 0, questionLayout.getWidth(), questionLayout.getHeight());
//Question Line
reDraw.drawImage(shapeLeft,0,15, null);
reDraw.drawImage(rightArrow,width,15, null);
reDraw.drawImage(transform1,width*2,30, null);
reDraw.drawImage(rightArrow,width*2+smallWidth,15, null);
reDraw.drawImage(questionMark,width*3+smallWidth,15, null);
try{
ImageIO.write(questionLayout, "png", new File(fileSaveLocation + "\\S" + (scenarioNum + 1) +"Q1.png"));
;}catch (Exception e) {}
//output correct answer as image
drawSingleShapeImage(shapeRight,scenarioNum, 1, fileSaveLocation);
drawDistractionShapeImage(none,scenarioNum, 1, 4, fileSaveLocation);
}
嘗試讀取圖像這樣'className.class.getClassLoader() .getResource(「yourImage」)'並重新創建罐子 – SparkOn 2014-08-30 13:50:29
謝謝你的工作 - 在代碼中做一些替換。是錯誤的,因爲我已經硬編碼了當jar被導出時改變的位置。只是想明白,所以不要犯同樣的錯誤兩次 – user1836661 2014-08-30 14:15:43