The cache location could change with each release of the vm and could be different depending on who makes the vm. And so far the cache location has changed with each release. Relying on the cache location is a mistake. Assuming your app is signed, to get a jar out of the cache just use a HttpConnection to the path specified in the jnlp and copy it anywhere you like.
I am using following JNLP file for running application from remote machine.
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0"
codebase="http://<Machine_IP>/jnlp/Extension/">
<information>
<title>Singleton test</title>
<vendor>Sun Microsystems, Inc.</vendor>
<homepage href="index.html"/>
<shortcut online="false">
<!-- create desktop shortcut -->
<desktop/>
<!-- create menu item for this app under the major heading Esperanto -->
<menu submenu="TestApplication"/>
</shortcut>
<offline-allowed/>
</information>
<resources>
<j2se version="1.6"/>
<jar href="sing.jar" download="eager"/>
<jar href="sing2.jar" download="eager"/>
<jar href="sing3.jar" download="eager"/>
<jar href="sing4.jar" download="eager"/>
</resources>
<application-desc main-class="Single">
</application-desc>
</jnlp>
When i run JWS files then at which default location JWS cahces these files from remote machine on my PC ? As you mentioned location can vary then with what name these files are cahced.