通过记事本打开文件txt++;默认java代码

通过记事本打开文件txt++;默认java代码,java,swt,Java,Swt,目前,我使用上面的代码在本地打开一个txt文件。 但是,它将通过记事本打开,并且不会保持原始格式。 我想通过notepad++打开默认设置来修复此问题。 请告诉我如何处理这个案子。 谢谢。右键单击该txt文件并转到属性,然后将打开更改为notepad++。现在运行您的代码,您现在可以看到该文件在notepad++中打开 首先,您的计算机使用notepad作为默认文本编辑器,通过执行上述步骤,它将变为notepad++您可以使用Desktop.getDesktop().open(file),但它使

目前,我使用上面的代码在本地打开一个txt文件。 但是,它将通过记事本打开,并且不会保持原始格式。 我想通过notepad++打开默认设置来修复此问题。 请告诉我如何处理这个案子。
谢谢。

右键单击该
txt
文件并转到属性,然后将打开更改为
notepad++
。现在运行您的代码,您现在可以看到该文件在notepad++中打开


首先,您的计算机使用
notepad
作为默认文本编辑器,通过执行上述步骤,它将变为
notepad++

您可以使用
Desktop.getDesktop().open(file)
,但它使用默认系统应用程序打开指定的文件

此API的优势在于其平台独立性

但是,如果出现以下情况,您确实需要彻底思考您将要做什么:
  • 已安装记事本+,但不是
    .txt
    文件的默认程序
  • 记事本++存在,但未安装

  • 其他信息来自


    我想指出,可以使用edit()而不是open()来使用系统的默认编辑应用程序而不是打开应用程序来打开它。请注意,普通用户不知道如何更改默认编辑应用程序,通常在windows中将其设置为记事本

    应该可以工作,但是如果您没有在路径中添加notepad++,则命令将被删除

    { "cmd", "/c","notepad++ C:\Test.txt" };
    
    试试这个:

    { "cmd", "/c","fullpath-to-notepad++.exe C:\Test.txt" };
    

    例如,如果记事本++位于
    C:\Windows\notepad++.exe

    Runtime runtime = Runtime.getRuntime();
    Process process = runtime.exec("C:\\path\\to\\notepad++.exe C:\\path\\to\\file.txt");
    

    转到记事本++属性,查看路径

    记事本++是系统中.txt文件的默认程序吗?请尝试{“cmd”、“/c”、“记事本++c:\Test.txt”}@Satya的评论是相关的,但您可能有一些情况下,
    notepad++
    命令无法被命令行识别,例如,未设置path变量。在这种情况下,他将不得不使用notepad++.exe的完整路径,作为答案发布。您的notepad++后备解决方案是什么?是的,但是,我想在其他机器上打开。因此,我希望以notepad++默认值打开,而不进行上述更改。我希望其他机器@user2659694将在上使用代码,也将运行Windows。因为,不同的操作系统需要不同的命令。他必须有一个单独的方法来返回命令,具体取决于操作系统。我想指出,可以使用
    edit()
    而不是
    open()
    来使用系统的默认编辑应用程序打开命令,而不是打开应用程序。请注意,普通用户不知道如何更改默认的编辑应用程序,并且通常在windows中将其设置为记事本。我也遇到了同样的问题,并且能够用上面的代码解决它。确保根据记事本+++.exe的位置进行相应的更改。还要记住Test.txt可以在任何地方。。。您只需要给出路径名(我通过右键单击它并转到属性来实现……路径应该准备好进行可靠的复制和粘贴处理:))
    Runtime runtime = Runtime.getRuntime();
    Process process = runtime.exec("C:\\Windows\\notepad++.exe C:\\test.txt");
    
    Runtime runtime = Runtime.getRuntime();
    Process process = runtime.exec("C:\\path\\to\\notepad++.exe C:\\path\\to\\file.txt");
    
    Runtime runtime = Runtime.getRuntime();
    Process process = runtime.exec("C:\\Windows\\notepad++.exe C:\\test.txt");
    
                try {
                    String cmds[] = new String[] { "cmd", "/c","C:\\Program Files (x86)\\Notepad++\\notepad++.exe " , "C:\\Test.txt" };
                    Runtime.getRuntime().exec(cmds);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }