【问题标题】:Associate Java class-files to run on double-click on Windows关联 Java 类文件以在 Windows 上双击运行
【发布时间】:2010-02-09 20:11:26
【问题描述】:

如果说Java 有一点让我很恼火,那就是你不能双击一个类文件来运行。我假设注册表中有一个条目必须进行编辑才能执行此操作,但我不知道。

所以,正如它在罐头上所说的那样。有谁知道如何关联 Java 类文件以在 Windows 上双击运行(我的目标是 Windows 7,但我敢肯定三个最新版本没有区别)?这会让我(我相信很多其他人)的生活更轻松!

更新:我已经看到了有关从相关类中制作 JAR 并以这种方式运行它的答案。无论多么有用,这并不是我在这里寻找的。我实际上是在寻找 Windows 本身来调用 java 并在双击类时使用正确的参数。

【问题讨论】:

  • 如果 .class 没有 main 方法,你希望它做什么(也就是说,如果它什么都不做?)
  • 理想情况下,NoMainMethodException 或任何 java 在你传递一个没有 main 方法的类时应该抛出的东西
  • 你需要 .jar 机制来列出哪个类有主类以及所有依赖项在哪里。尝试使 .class 文件“可运行”几乎没有用处,因为您仍然需要设置具有依赖关系的类路径,并且总是存在依赖关系
  • 类驻留在映射到目录结构的包中...如果您当前位于目录 z 中,并且您的类是 w.x.y.z.ClassName - 您将如何知道该目录向上走多远层次结构甚至为您尝试运行的类提供类路径?因此,您只能在“默认”(又名未指定)包中执行类。所有这些问题都可以通过创建可执行 JAR 来解决...
  • 你知道怎么做吗?

标签: java windows-7 registry explorer


【解决方案1】:

如果类路径无关紧要,可以使用简单的批处理文件 runjava.bat 轻松完成,或者与资源管理器中的 .class 文件相关联(通过右键单击>>打开方式..)

@echo off
REM change to folder where the class file resides
cd %~d1%~p1
REM execute the class by calling its name without file extension
start java %~n1

【讨论】:

  • 毫无疑问,将类文件与蝙蝠相关联。我喜欢用 CD 来处理类路径。 “开始”是否有利?将.class 添加到 PATHEXT 设置 PATHEXT=%PATHEXT%;.class 也很好,因此您可以从命令行输入类文件名而无需类的扩展名。您也可以将 %~d1%~p1 替换为 %~dp1,如 for /? 中所述
【解决方案2】:

双击 JAR 解决方案是最常见的纯 Java 分发方法。尝试直接执行 .class 文件会有很多问题,首先想到的是类路径。

也就是说,如果你想在你的开发环境中支持最简单的可能性,你可以想象实现一个脚本

  • 检查 .class 文件以获取完整的类名(包括包和内部类名)
  • 向上遍历目录树到文件类路径的根目录
  • (可选地在类路径中包含任何常见的 lib 目录)
  • 为确定的类调用 Java

然后您可以将闪亮的脚本注册为 .class 文件的处理程序。但是,既然您处于开发环境中,您对您的 IDE 执行此操作不满意吗?

【讨论】:

  • 当然,我喜欢我的 IDE 为我做这件事。但我觉得如果我可以单击任何类,理想情况下是一个为我执行此操作的脚本,并在适当的类上调用 java.exe,事情会更容易。我假设一个 VB 脚本可以关联到上下文菜单并这样做?
  • 当然,VBScript,Java 程序,批处理文件。只需使用上下文菜单中的“打开方式...”来设置您的文件关联(或者您喜欢这样做)。
【解决方案3】:

要运行.class 文件,首先需要有“事情”要做,即.class 应该包含main 方法。并非所有.class 都有一个。

您可以做的一件事是将您的应用(许多 .class 文件)包装在一个 jar 文件中。

简而言之,除了你的类之外,你只需要一个清单文件,上面写着where the main method is:

jar -cmf yourmanifestfile.mf  doubleClickApp.jar  *.class 

就是这样,doubleClickApp.jar 现在可以通过“doubleClick”手势执行。

【讨论】:

    【解决方案4】:

    当您安装 Java 运行时环境时,它会将 .jar 文件注册为 Windows 中的关联。如果双击 .jar 文件,它将使用 Java 打开它。为此,您需要确保定义了一个指向要运行的类的清单。您要运行的类文件必须有一个将被调用的 main 方法。

    假设您在磁盘上有一个名为“com.TheClass.class”的类。如果您想通过双击运行它,请在名为 META-INF/manifest.mf 的新目录中创建一个文件。把这个放进去:

    Manifest-Version: 1.2
    Main-Class: com.TheClass
    

    使用此清单目录和文件压缩(或使用 jar 命令)您的类。将其重命名为 mine.jar。双击它,它应该会使用 Java 运行时启动您的类。

    【讨论】:

      【解决方案5】:

      http://justaddhotwater.webs.com/javaexec.htm

      此软件可以通过双击运行您的 Java 类。(仅限 Windows)。

      【讨论】:

        【解决方案6】:

        我发现最简单的方法是在与.class 文件相同的文件夹中创建快捷方式。然后右键单击它并转到属性。将字段Target更改为java NameOfClass,最后双击快捷方式:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-08-27
          • 2019-04-12
          • 2014-09-08
          • 2017-02-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多