Java 如何设置特定文件格式的默认应用程序?
我正在编写创建.mg文件的应用程序。这些文件只包含与普通.txt文件相同的级别文本。我只是想知道,如何设置以我的应用程序作为默认运行这些.mg文件。Java 如何设置特定文件格式的默认应用程序?,java,file,default,Java,File,Default,我正在编写创建.mg文件的应用程序。这些文件只包含与普通.txt文件相同的级别文本。我只是想知道,如何设置以我的应用程序作为默认运行这些.mg文件。 在java中有什么方法可以做到这一点吗?U应该通过修改注册表来做到这一点 了解u键应该修改的步骤: 扩展在HKEY_CLASSES_ROOT中关联 按照以下步骤创建您自己的关联: 1.打开HKEY\U CLASSES\U ROOT并创建扩展键(如果不存在) 2.打开该键并将“处理程序”的名称写入DefaultValue中,例如MyApp_ext 3
在java中有什么方法可以做到这一点吗?U应该通过修改注册表来做到这一点 了解u键应该修改的步骤: 扩展在HKEY_CLASSES_ROOT中关联 按照以下步骤创建您自己的关联: 1.打开HKEY\U CLASSES\U ROOT并创建扩展键(如果不存在) 2.打开该键并将“处理程序”的名称写入DefaultValue中,例如MyApp_ext 3.关闭当前密钥并在HKEY\U CLASSES\U ROOT中创建另一个具有处理程序名称(MyApp\U ext)的密钥 4.打开该键并写入此扩展名的DefaultValue说明 5.在处理程序密钥内创建密钥默认图标 6.打开该键并将包含图标的文件的完整路径写入DefaultValue 7.关闭当前键并在处理程序键内创建\shell\Open\Command键 8.打开该键并将应用程序的完整路径(包括参数)写入DefaultValue 8.如果您在创建文件扩展名关联时遇到问题,请打开一个regedit并执行以下操作: 看看H**KEY\u CLASSES\u ROOT**KEY内部的结构 现在用java做上面的修改,试着把下面的代码修改成你的愿望键(这是一个 在windows注册表中进行修改):
你不能。无法使其与任何操作系统、任何DE和任何文件资源管理器一起工作。在windows上,您需要运行相应的regedit命令,才能将此类型添加到默认应用程序中。
import com.sun.jna.platform.win32.Advapi32Util;
import com.sun.jna.platform.win32.WinReg;
public class WindowsRegistrySnippet {
public static void main(String[] args) {
// Read a string
String productName = Advapi32Util.registryGetStringValue(
WinReg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "ProductName");
System.out.printf("Product Name: %s\n", productName);
// Read an int (& 0xFFFFFFFFL for large unsigned int)
int timeout = Advapi32Util.registryGetIntValue(
WinReg.HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows", "ShutdownWarningDialogTimeout");
System.out.printf("Shutdown Warning Dialog Timeout: %d (%d as unsigned long)\n", timeout, timeout & 0xFFFFFFFFL);
// Create a key and write a string
Advapi32Util.registryCreateKey(WinReg.HKEY_CURRENT_USER, "SOFTWARE\\StackOverflow");
Advapi32Util.registrySetStringValue(WinReg.HKEY_CURRENT_USER, "SOFTWARE\\StackOverflow", "url", "http://stackoverflow.com/a/6287763/277307");
// Delete a key
Advapi32Util.registryDeleteKey(WinReg.HKEY_CURRENT_USER, "SOFTWARE\\StackOverflow");
}
}