Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何实现用java程序打开文件?_Java_File_File Io_Drag And Drop - Fatal编程技术网

如何实现用java程序打开文件?

如何实现用java程序打开文件?,java,file,file-io,drag-and-drop,Java,File,File Io,Drag And Drop,我有一个基本的,简单的,也许是愚蠢的问题,但是我如何实现我可以把一个文件拖到我的java程序上并打开它呢? 我找了很久这个基本问题 只要我发现你不能实现把它拖到.jar上,因为它不是可执行的。您必须创建一个.exe,它也会打开您的.jar,但仅此而已!我真的很想知道怎么做:) 一个关键字就足够了,如果我能通过搜索这个关键字得到答案 谢谢,利安德 //编辑:我可能把事情表达得有点复杂。 稍后,我想在桌面上设置一个快捷方式,例如,我可以在桌面上拖动快捷方式上的任何文件,程序将打开该文件(此时它将只将

我有一个基本的,简单的,也许是愚蠢的问题,但是我如何实现我可以把一个文件拖到我的java程序上并打开它呢? 我找了很久这个基本问题

只要我发现你不能实现把它拖到.jar上,因为它不是可执行的。您必须创建一个.exe,它也会打开您的.jar,但仅此而已!我真的很想知道怎么做:)

一个关键字就足够了,如果我能通过搜索这个关键字得到答案

谢谢,利安德

//编辑:我可能把事情表达得有点复杂。 稍后,我想在桌面上设置一个快捷方式,例如,我可以在桌面上拖动快捷方式上的任何文件,程序将打开该文件(此时它将只将其移动到特殊位置)


我不知道这段代码会是什么,我甚至不知道如何用谷歌搜索(我只知道如何用答案桌面实现“打开”(文件f))。

开始阅读的地方是。或者,您可以直接从


如果你想创建一个桌面图标,当你在上面放置文件时,它将打开你的应用程序,这取决于操作系统。我认为这将支持这一点,尽管我没有以这种方式使用它。

在窗口中,您可以创建.bat文件,如果您在该文件上使用DnD,您将获得文件名作为First参数

so代码

echo %1
pause
写出文件名,这样您就可以像

java -jar myApp.jar MyAppClass %1
仅适用于windows:

选项1:

在jar文件的目录中创建一个批处理文件(或者任何你喜欢的地方,但是你需要调整路径,你也可以从批处理文件中创建一个快捷方式)

选项2:

  • 创建快捷方式(右键单击-新建-快捷方式)
  • 输入位置“java-jar C:\path\to\myapp.jar”
如果您的jar接受filename作为参数,那么拖放就可以工作

公共类主{
公共静态void main(字符串[]args){
如果(args.length==0)
System.out.println(“无参数”);
其他的
System.out.println(“第一个参数:“+args[0]);
}
}

我怀疑这取决于操作系统。可能与“仅将其移动到特殊位置”的含义重复?您不能让jar具有拖放功能,但是您可以有一个添加“拖放”功能的快捷方式,然后您必须在代码中处理它(参见我的答案)如果它是一个路径,程序只需根据您的时间和日期将文件复制到一个特殊位置,然后删除源文件。我想,问题是当他拖动某个图标时如何启动程序,而不是在程序运行后如何使D&D工作。@B argies-啊。如果是这样的话,那么正如你在评论中指出的,这一切都取决于操作系统。你也许可以用Launch4j.hmm做点什么,我搜索了整个网页,但我仍然不知道如何实现它。main方法中的参数是否包含指向对象的路径?@user1080014-当您将文件放到应用程序图标上时,我认为Windows默认情况下将使用文件名构造一个命令行。因此——是的,它们将是
main(String[]args)
的args。(它们是否是唯一的参数取决于您在创建桌面快捷方式时指定Launch4j应使用的命令行。)我不知道是否可以使用Windows提供的IDROPTTarget机制为您提供更多控制。我遇到了完全相同的问题。我的JAR在windows桌面上有一个指向它的快捷方式,但它只包含JAR文件的路径,而不包含java命令。我改变了,它成功了。我只是使用javaw而不是java命令来避免DOS窗口。在我看来,方案二解决了这个问题。非常感谢你!
@ECHO OFF
start java -jar %~dp0MYAPP.jar %1