我正在试图弄清楚如何打开给定文件的系统首选编辑器.
比如,我们有一个用Java编写的文件管理器.用户转到文件夹并查看文件列表.例如,有一个文件Icon.jpg.用户双击文件名和文件将在系统首选编辑器(即Gimp)中打开.主要问题是 - 如何做到这一点?
我们可以这样做Runtime.getRuntime().exec("something file"),但是这样你应该知道在用户环境中首选哪个程序.但是怎么样?
我们也能做到Desktop.getDesktop().edit(File file),但是这样我们就无法跟踪进程,也无法知道这个子进程是否已关闭.其他问题 - 函数在linux上不起作用(至少在Ubuntu 8.10上).还有Desktop.getDesktop().open(File file),但它强制打开文件查看器,而不是该文件类型的系统查看器.
我整个星期都在寻找解决方案,但没有任何合适的通用解决方案.你知道这个问题的其他方法吗?对于我的项目,如果它可以在Windows + Linux + Mac上运行就足够了.
感谢您的回答和建议.
编辑于2009-02-08 23:04
其他建议:我可以在Windows和Linux中强制"应用程序选择"窗口,就像Mac中的"打开文件"一样吗?例如,然后您尝试打开文件,系统会要求您从系统首选列表中选择应用程序?(类似于Windows资源管理器中的"打开方式...").你知道吗?
我在dockerhub上创建了一个自动构建存储库(通过github)并尝试将自动构建的映像拉到云服务器上.
使用类似的东西
docker pull com.company/project:tag
但它给了我
Error: image com.company/project:tag not found
Run Code Online (Sandbox Code Playgroud)
它通常适用于公共存储库,我是否必须为私有存储库执行其他操作?
我正在尝试从变量中实例化一个类,并编写了一些测试代码.但是,不幸的是,它无法正常工作.这是代码:
Object co1 = new CommandDownloadHttp();
Class cc1 = Class.forName("CommandDownloadHttp");
Object co = cc1.newInstance();
Run Code Online (Sandbox Code Playgroud)
不幸的是,在第二线它崩溃了java.lang.ClassNotFoundException.
你能告诉我我做错了什么吗?