There are only two ways in which you can run a program: you either compile it into machine code or you use an interpreter.
The JRE interprets Java bytecode (and does many more things, of course). There are compilers which generate native executables from Java source or byte code. The only one I know about is gcj, and the last time I checked it was only for Java 5 and didn't seem to be very reliable.
Most java applications either require a JRE or have one included in the distribution.
For instance, you can get Oracle SQL Developer with or without the JRE included. About Netbeans, there are distributions requiring a JDK (a JRE is not enough, as it needs the compiler and development tools), and also JDK with Netbeans bundles.
Now, there are three main ways to start a Java application (not counting Java Web Start and the like): you run java command manually, you use a script which does so or you run an executable called "wrapper".
There are several wrappers out there you can customise for any application. The link by PJ Fanning includes a list, if not mistaken. The wrappers use a JRE to run the application and ease starting java applications as services on system startup.
So, unless you find an application which was compiled into native code (and then, ideally, you couldn't tell it was a Java application), you are always using some JRE, be it a preinstalled one, or a bundled one.