2012-01-23 20 views
0

如何在java代码中将mac中的.vlan文件类型关联到mac?如何在Java代码中将mac中的文件类型关联到mac中?

Runtime.getRuntime().exec("defaults write com.apple.LaunchServices LSHandlers -array-add 
\"<dict><key>LSHandlerContentTag</key> 
<string>.vlan</string><key>LSHandlerContentTagClass</key> 
<string>public.filename-extension</string><key>LSHandlerRoleAll</key> 
<string>org.category.program</string></dict>\""); 
+0

咦?你能以问题的形式重述那个吗?将它与什么相关联? –

+0

那么,我的应用程序应该是跨越平台,所以我已经通过ftype和assoc命令来覆盖Windows部分的东西,它工作得很好,但是,现在我需要覆盖相同的文件类型的Mac。请记住,我对mac环境的理解是非常有限的 – Sam

+0

重复,回答[这里](http://stackoverflow.com/a/2976711/493928) – khachik

回答

1

如果应用程序。有一个GUI,使用Java Web Start进行部署,并在JNLP(启动)文件中声明文件扩展名/类型。这是一个demo. of the JNLP API file services,它应该能够将.zzz文件的text/sleepytime内容类型与(小)应用关联。

添加一个文件类型关联支持在Windows上运行,OS X & * nix中(对于所有权限,以及沙箱应用程序。(后者提示))。

1

试试这个:

Runtime.getRuntime().exec(
    new String[] { 
     "defaults", 
     "write", 
     "com.apple.LaunchServices", 
     "LSHandlers", 
     "-array-add", 
     "<dict><key>LSHandlerContentTag</key><string>.vlan</string><key>LSHandlerContentTagClass</key><string>public.filename-extension</string><key>LSHandlerRoleAll</key><string>org.category.program</string></dict>" 
    } 
); 

而只是为了补充,运行的exec具有quite some pitfalls一个需要注意的。

相关问题