我正在使用Java在基於Web的程序上工作。我不確定如何對此進行描述,但我期望該程序將從c:/ Resin/webapps/apps目錄中運行。但是,當我在程序中引用一個文件時:「../files/randomfile.pdf」,它找不到該文件。它適用於我這樣引用它:「c:/Resin/webapps/files/randomfile.pdf」。如何更改「運行位置」? (什麼是這樣做的技術術語?)程序沒有從預期目錄運行?
try {
Document iTextDoc = new Document(PageSize.LETTER, 27, 27, 35, 18);
HttpServletResponse res = (HttpServletResponse) pageContext.getResponse();
res.setContentType("application/vnd.ms-word");
res.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".rtf;");
RtfWriter2 rtfWriter = RtfWriter2.getInstance(iTextDoc, res.getOutputStream());
iTextDoc.open();
iTextDoc.add(new Paragraph ("Testing RTF Letterhead with Logo"));
// Use full classname to avoid ambiguity with java.awt.Image
com.lowagie.text.Image logoImg = com.lowagie.text.Image.getInstance("../files/someimage.jpg");
logoImg.setAlignment(Image.RIGHT | Image.TEXTWRAP);
iTextDoc.add(logoImg);
iTextDoc.add(new Paragraph ("Put other information about organization beneath logo"));
iTextDoc.close();
}
我碰到下面的錯誤與生成的文件:ADOBE READER無法打開「SomeFile.pdf的」,因爲它是要麼不支持的文件類型,或者因爲文件已被損壞(例如,它是作爲電子郵件附件發送的,未正確解碼)。
但是,如果我改變的getInstance命令是:
com.lowagie.text.Image logoImg = com.lowagie.text.Image.getInstance("webapps/files/someimage.jpg");
它的工作原理。所以我的猜測是工作目錄(感謝這個詞)需要設置在某個地方。我使用樹脂 - 任何想法,我應該設置這個?
謝謝!
「運行位置」通常被稱爲工作目錄,它可能不是應用程序所在的目錄。你如何引用這些文件(代碼片段)?問題可能是應用程序的目錄不在類路徑中。 – Paolo 2010-05-05 13:58:49