开发者

Associate Java class-files to run on double-click on Windows

If there's one thing that annoys me about Java it's that you can't double-click a class file so as to run. I assuming there's an entry in the registry that has to be edited to do this but I haven't a clue.

So, as it says on the tin. Does anyone know how to associate Java class files to run on double-click on Windows (I aiming for Windows 7 here but I'm sure there'd be no difference in the three most latest releases)? It would make my life (and I'm sure many other people's) much easier!

Udpate: I've seen answers relating to making a JAR out of the class in question and running it that way. However useful, that is not exactly what I'm looking for here. I'm effectively look开发者_JAVA百科ing for Windows itself to invoke java with the class on double-click, with the correct arguments.


if classpath doesnt matter too much, easily done with a simple batch file runjava.bat or so that is associated with .class files in the explorer (via right click >> open with..)

@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


The double-clickable JAR solution is the most common plain Java distribution method. There'd be a number of issues with trying to execute .class files directly, with the classpath the one that pops first to mind.

That said, if you wanted to support the very simplest possibilities in your development environment, you could conceivably implement a script that

  • inspected the .class file for the full class name (including package and inner class name)
  • walked up the directory tree to the root of the file's class path
  • (optionally included any common lib directories in the classpath)
  • invoked Java for the determined class

Then you could register your shiny script as a handler for .class files. But since you're in the development environment, aren't you happier with your IDE doing that?


For a .class file to run, needs in first place to have "something" to do, that is, that .class should contain a main method. Not all the .class do have one.

One thing you can do, is to wrap your app ( a number of .class files ) inside a jar file.

For short, you just need in addition to your classes a manifest file that says, where the main method is:

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

And that's it, the doubleClickApp.jar is now executable with a "doubleClick" gesture.


When you install the Java Runtime Environment, it registers .jar files as an association in Windows. If you double-click on a .jar file, it will open it using Java. For this to work, you need to make sure you have a manifest defined that points to the class to run. Your class file to be run must have a main method that will be called.

Let's assume you have a class named 'com.TheClass.class' on disk. If you want to have this able to run with double click, create a file in a new directory called META-INF/manifest.mf. Put this into it:

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

Zip (or use the jar command) both your class up with this manifest directory and file. Rename it to mine.jar. Double click on it and it should launch your class with the Java runtime.


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

This software makes it possible to run your Java classes by double-clicking them.(Windows ONLY).


The easiest way that I have found was creating a shortcut on the same folder than the .class file. Then right click on it and go to properties. Change the field Target to java NameOfClass, finally double click the shortcut :)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜