java - 为什么尝试使用此可传输的数据风格时在 OSX 上没有出现协议(protocol)错误?

标签 java macos

尝试从亚马逊复制和粘贴图像时报告此错误,尽管我们检查可传输对象支持特定的数据风格,但在尝试使用该数据风格获取网址时会失败。我之前没有见过这个错误,最近迁移到了 Java 1.8.0_20,所以我假设问题出在 Java 8 上?

 java.net.MalformedURLException: no protocol: <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <array>
        <string>http://ecx.images-amazon.com/images/I/41NTPXC8EHL.jpg</string>
        <string></string>
    </array>
    </plist>
    at java.net.URL.<init>(URL.java:586)
    at java.net.URL.<init>(URL.java:483)
    at java.net.URL.<init>(URL.java:432)
    at sun.lwawt.macosx.CDataTransferer.translateBytes(CDataTransferer.java:135)
    at sun.awt.datatransfer.ClipboardTransferable$DataFactory.getTransferData(ClipboardTransferable.java:71)
    at sun.awt.datatransfer.ClipboardTransferable.getTransferData(ClipboardTransferable.java:168)

代码摘录为

public static DataFlavor imageUrlFlavor =  new DataFlavor("application/x-java-url;class=java.net.URL");
public void getImage(Transferable trans)

            if(trans.isDataFlavorSupported(FileDropTarget.imageUrlFlavor))
            {
                imageUrl  = (URL) trans.getTransferData(FileDropTarget.imageUrlFlavor);
            }

最佳答案

不是一个令人满意的答案 您可以列出剪贴板上放置的所有 DataFlavor trans.getDataFlavors() ;一般来说,副本会包含多种风格,例如纯文本和样式文本。

替代方案

public static DataFlavor imageUrlFlavor = 
    new DataFlavor(URL.class, "application/x-java-url");

也可能会失败。

关于java - 为什么尝试使用此可传输的数据风格时在 OSX 上没有出现协议(protocol)错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25972660/

相关文章:

java - 如何根据其运行时类型制作 JAXB Marshaller 编码抽象类?

macos - 安装 Homebrew 软件时出错 "unexpected disconnect while reading sideband packet"

swift - 在任务完成时设置启动器 View Controller 的变量

iphone - iPhone SDK 上的 sqlite3 错误 "not an error"

java - 将值设置/放入Spring-boot的Spring环境中以供以后使用

java - Magical Number 的省时递归

java - 了解 Spring MVC 配置

java - 如何应用随机颜色?

wpf - 是否可以在 WPF 和 Silverlight 中开发一个应用程序?

python - Spyder 找不到 glpsol