Any idea why we have to restart iReport each time we make some changes in scriptlets? For example, make a scriptlet that uses System.out.println("Hello"), use it in your report, run the report and "Hello" will get displayed. Then change "Hello" to "HelloWorld", save your scriptlet and run your report again, it will still display "Hello" Close iReport and re-open, then re-open your report and run it again, now "HelloWorld" gets displayed! It happens when I use internal scriptlet support and external (building in Eclipse and packaging in a JAR) Same problem with iReport 2.0.5 and 3.0.0. Anybody knows the fix to this?