2011-12-27 115 views
0

我创建了一个注册表,它将我的.mike文件与我创建的记事本应用程序相关联。在批处理文件中打开.jar文件的命令

我认为问题在于某处注册表,因为它只能运行.exe文件,虽然,我听说.batch.exe文件是同样的事情之一。

我试图打开使用我的应用程序创建的文本文件,并收到消息“[blank] is not a valid Win32 Application”。

双击文件后,批处理文件中的命令是如何打开应用程序中的文件的?

+2

正如一些教育信息:一个批处理文件是一个命令脚本文件(由操作系统的命令处理器执行 - 最近的Windows版本是'cmd.exe'),而'.exe'(可执行文件)是一个独立可执行文件由二进制代码组成(它在操作系统上自行运行)。它们不像“同一件事”。 –

+0

你如何启动你的应用程序?你是如何创建文件关联的?也许[此Tec​​hNet文章](http://technet.microsoft.com/en-us/library/cc749986.aspx)可能有助于澄清事情? –

+0

@DanielPryden我希望我正确解释你的第一个问题,我通过双击.jar文件启动应用程序......?我通过创建类似于[此博客帖子]的文本文档创建了文件关联(也许这不是正确的术语)(http://registryeditor.blogspot.com/2008/09/how-do-you-make-你自己的文件extension.html)。感谢您参阅TechNet文章。我会看看我能做什么,并让你知道发生了什么! – Rob

回答

2

根据你对你的问题的评论,它看起来像你只是想构建一个命令行来启动你的JAR文件。这很简单:

%JAVA_HOME%\bin\javaw.exe -jar C:\Path\To\YourApplication.jar 

(凡%JAVA_HOME%是指您安装Java的目录)

Sun的网站上有some comprehensive documentation on the java.exe and javaw.exe launchers。 (这个特定的链接有点过时,因为它指的是Java 1.4.2,但启动机制自那时以来一直没有改变。)

如果你想启动你的应用程序并打开一个文件,命令行是可能是这样的:

%JAVA_HOME%\bin\javaw.exe -jar C:\Path\To\YourApplication.jar C:\Path\To\SomeFile.txt 

然后"C:\\Path\\To\\SomeFile.txt"将被传递给你的main()方法在其String[] args参数。

+0

@Mike:如果有一些你不明白的特定方面,请随时打开一个新问题。 –

+0

好的。通过说'%JAVA_HOME%** **引用** ...是否意味着它像编程或引用中那样引用位置,如“在此处插入目录”?我试图在命令提示符下执行change directory命令(只有'cd'推回到父文件夹),但它保持在同一目录下,这告诉我它必须是根目录。如果它推回到C:\,我会添加指向'javaw.exe'文件的其余目录。再次,我很抱歉有这么多问题。我几乎没有任何背景的命令提示符。 – Rob

+0

@Mike:你一定要熟悉命令提示符,因为这可以帮助你理解这里发生了什么。 DOS和Windows命令shell使用'%'-syntax来指示环境变量的扩展,这就像编程中的一个变量。通常将一个名为'JAVA_HOME'的环境变量设置为指向Java安装文件夹(许多Java工具都期望这样做),但通常不会由Windows上的JDK安装程序完成。所以你可以自己设置变量,或者用你的硬编码路径替换它。 –