7

I need to use my own java class in a cfml page.

This entry in the documentation sounds great but does not explain which files I have to create.

I tried to create a test.cfm page under my website root. Then placed TestClass.java + TestClass.class in the same path. But that results in an error "class not found"!.

Can you please help me?

1

1 Answer 1

14

a TestClass.java + TestClass.class in the same path.

You cannot just place .class files anywhere. When the CF server starts, it only checks specific locations for classes/jars. Those locations are referred to as the "CF class path". Your compiled .class file must be placed within the CF class path, or it will not be detected.

To use a custom java class:

  1. Create a source file ie YourTestClass.java
  2. Compile the source code into a class file ie YourTestClass.class
  3. Place the compiled .class file somewhere within the CF classpath, such as:

    • WEB-INF\classes - for individual .class files
    • WEB-INF\lib - for .jar files (multiple classes)

    Note: You could also add the item to the CF class path via the ColdFusion Administrator. However, placing the class in one of the default directories is simpler.

  4. Restart the ColdFusion server so it detects the new classes

Note: Though you can use individual .class files, it is more common to package them into .jar files.

Sign up to request clarification or add additional context in comments.

3 Comments

As a side note, you can also create a new folder in cf and add the class path in the administrator if you want to keep you custom classes seperate.
You can do dynamic loading if you use JavaLoader ( javaloader.riaforge.org ) or ColdFusion 10 (which includes JavaLoader).
True, once you get comfortable with the basics of compiling and using classes you can take advantage of cool features like dynamic class loading or modifying the class path. (I would strongly recommend using jars, rather than individual class files too. But one step at a time ;)

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.