程序的可执行文件以 Java 映像

Posted

技术标签:

【中文标题】程序的可执行文件以 Java 映像【英文标题】:Program's executable file to image in Java 【发布时间】:2012-09-17 16:43:23 【问题描述】:

我知道这可能看起来有点奇怪,但我有这个要求,我想知道这是否可行。

我有一个 java swing 应用程序,我选择了一个文件(程序)并将该程序添加到列表中。列表完成后,我执行程序列表(这就像一个启动管理器)。

我想要做的是,抓取我选择的文件并将其作为图像显示到我的 UI。对于 pdf、doc、txt 等常见文件,这很容易,我只为每种类型准备了一个通用图像。但是假设我想执行 regedit.exe 或 msconfig.exe,我希望能够抓住它的图标(下图)。

有谁知道如何做到这一点?

谢谢

【问题讨论】:

【参考方案1】:

看看FileSystemView.getSystemIcon(File)。

它有点受限(因为您只能获得一种尺寸),但它是内置的,甚至不需要任何额外的库或 JNA 或 JNI...

File f = new File(...);
Icon icon = FileSystemView.getFileSystemView().getSystemIcon(f);

【讨论】:

【参考方案2】:

如果你想要原生图标,你需要 JNI。 Java 没有用于获取不同大小的本机图标的默认 API。以下是 windows 和 linux 的一些起点:

File icon overlay in java for windows How do you get the icon, MIME type, and application associated with a file in the Linux Desktop?

如果您不需要确切的本机图标,您可以获取文件的 mimetype 并自行设置图标:

Getting A File's Mime Type In Java

【讨论】:

以上是关于程序的可执行文件以 Java 映像的主要内容,如果未能解决你的问题,请参考以下文章

关于 Windows 中带有调试信息的可执行文件

从另一个项目的可执行文件启动一个项目的可执行文件

java问题,怎样把.java格式的文件变成.exe格式的可执行文件?

怎样在java类中调用带参数的可执行文件(比如:.exe,.sh等等)?

程序如何删除自己的可执行文件

如何把ndk编译出来的可执行文件伪装成so打包到apk中