我试图通过点击按钮打开一个pdf文件。 路径实际上是正确的(我可以在浏览器中打开它),但它不工作。 问题究竟出在哪里?
以下是输出:
文件:/users/miladvosoughi/documents/prak/schach/target//mainmenu/ba.pdf
文件不存在!
private void openHelpPDF() {
try {
String adr = getClass()
.getResource("/mainMenu/ba.pdf").toString();
System.out.println(adr);
File pdfFile = new File(adr);
if (pdfFile.exists()) {
if (Desktop.isDesktopSupported()) {
Desktop.getDesktop().open(pdfFile);
} else {
System.out.println("Awt Desktop is not supported!");
}
} else {
System.out.println("File is not exists!");
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
此问题是由于您在中使用.toString()
引起的
String adr = getClass().getResource("/mainMenu/ba.pdf").toString();
从而生成一个字符串,该字符串不是java.io.File API所定义的路径名。
基本上,生成的file:/users/.../ba.PDF
字符串中的前缀file:
(源自URL类型)并不将PDF文件的位置描述为路径名。 但是,您使用的file
构造函数需要一个字符串路径名。 因此,如果要将一个字符串传递给file
构造函数,它应该类似于/users/...//mainmenu/ba.pdf
,而不包含file:
部分。
如果您想坚持使用java.io.file
,API可以使用
URL adr = getClass().getResource("/mainMenu/ba.pdf");
System.out.println(adr);
File pdfFile = new File(adr.toURI());
string adr=getClass()。getResource(“/mainmenu/ba.pdf”)。toString();
不返回文件名。 从Class.GetResource返回的对象是URL。
应用程序资源不是文件。 永远不能安全地假定它是一个文件。
如果要传递资源,必须将资源URL复制到临时文件,然后打开:
Path pdf = Files.createTempFile(null, ".pdf");
try (InputStream source =
getClass().getResourceAsStream("/mainMenu/ba.pdf")) {
Files.copy(source, pdf,
StandardCopyOption.REPLACE_EXISTING);
}
Desktop.getDesktop().open(pdf.toFile());
我提交了一个交易,但没有被开采。 创建和发送交易后,会收到交易hash,但是调用eth_getTransactionReceipt却总是返回空值,指示交易未被挖掘,代码如下: String transactionHash = sendTransaction(...); // you loop through the following expecting to eventually get a
问题内容: 在Java教程“定义接口”中,它说 如果未指定interface为,则只有与该接口在同一包中定义的类才能访问该接口。 但是这个 生成编译器错误是因为我试图分配较弱的访问权限;是公开的”。那么文档有误,或者我做错了什么,或者我对文档有误解? 我想我不必使用接口-我喜欢它,因为它可以使事情井井有条。 问题答案: 接口本身可以是包私有的,而不是其中的方法。您可以定义一个只能在其定义的包中使用
在我们的应用程序中,我们有一个场景,我们点击一个链接,点击后打开一个新的选项卡,其中有一个动态生成的PDF。 生成的将在new选项卡中打开,并以作为URL。 我没有选择下载生成的PDF以及。 我们有什么办法能解决这个问题吗??提前谢谢你。
问题内容: 编码 给出输出 然后是代码 引发异常 总而言之,有一个类,但是模块没有attribute 。到底是怎么回事? 我正在使用Matplotlib 1.1.0和Python 2.7.3。 问题答案: 嘿。这是因为有 是 无类..直到有需要,当一个人从建。这是通过以下方法实现的: 因此它是即时生成的,但是它是的子类:
问题内容: class GraphGenerator1 extends JPanel { ChartPanel chartPanel, sbc; 我有一个要更新的条形图,我尝试了revalidate和repaint方法,但没有成功。我什至还添加了chartPanel.addMouseListener(this)。我不知道我在哪里出错或应该在哪里添加一些内容。我有意将mouseListener添加到
显示已经搜索到驱动程序,但连接仍然失败。 如何修复错误?
我正试图在Java制作一个抽风游戏,但我的GUI就是没有出现。它制作了一个棋盘,你可以按下按钮来玩井字游戏。我刚来Java,所以我不知道哪里出了问题。它没有错误,我使用repl。怎么啦? 这里是我的第二个Java文件: 另外,我已经加载了x.png和o.png。