Java

时间:2019-05-21 11:30:18

标签: java windows

我正在用Java编写Windows程序(有点像屏幕上的贴纸,用于写一些重要的注释等)。自动关闭并保存您键入的所有内容并对其进行编码。为了保存,我进行了自定义文件扩展名(.T22),但它显示为空白页。我想在程序第一次启动时自动更改它。基本上,我想要用于保存文件的自定义图标,例如photoshop的.psd文件,但是它们都是用Java制造的。

我尝试浏览了很多网站,但甚至找不到任何人谈论它。

1 个答案:

答案 0 :(得分:1)

这不能通过Java实现。好吧,至少没有管理员权限。 Windows通过从Windows Registries.中获取值来显示文件扩展名图标事情是,当发生图标时,必须根据this link.将其用于所有用户。在链接中,引用了HKEY_CLASSES_ROOT为了实现这一目标。这就是“管理员权限”部分的来历。值得一提的是,没有100%确定的话,只有您先以管理员身份执行cmd 然后{{ 1}}。每天我花了很多时间才能从Java编辑这些注册表,没有管理员权限,我也无法做到这一点。 (如果您这样做,请让我知道您的做法:))

现在,假设您具有管理员权限,一种方法将很简单 来自管理员java -jar myapp.jar的{​​{1}}命令。

但是,如前一个链接所述,如果不提供程序可执行文件(reg)的完整路径,就无法简单地(我不确定)更改文件扩展名的图标。是的,您猜对了,您的程序不是Windows可执行文件。它只是一个压缩文件。因此,这也被拒绝了。

现在,您的问题将直接转到How can I convert a JAR file to an EXE file?。然后,加上管理员权限,您也许可以做到。

我个人的建议是找到一个JAR到EXE转换器,在程序安装过程中提供此选项。我的意思是,我确定您在Windows安装中看到过类似“将.txt文件与记事本++相关联”的内容。