Inconsistent cache location for web start

I have a requirement whereby we are going to use a CD to let the client pre-deploy some of our application jars in the web start cache so that when they access our application online, there is 0 wait time for them.
Fortunately we are supporting only JRE 1.4.2_x and above. After much experimentation with install/un-installing the JRE versions and acessing Sun's web start demos I realized that the java web start
application cache location is different for diferent versions of JRE and Operating systems.
After digging up the JRE 1.4.2_x code found that Sun uses $USER_HOME/Sun/Java/Deployment
/javaws/cache. This seems to be the case on Windows 2000. I tried JRE 1.5 on XP and it stores
it in $USER_HOME/Sun/Java/Deployment/cache/javaws. ( by default) Also the property in deployment.properties file is different
for 1.4.2 it is deployment.javaws.cache.dir
and for JRE 1.5 on xp it is deployment.user.cachedir.
This is making it impossible to write a generic install script for the CD.
Is there a definitive way to know what the cache location is for a given install of the JRE.

first :
version 1.5 also uses the property $deployment.javaws.cache.dir as an override for the property $deployment.user.cachedir/javaws
second, version 1.5 implements a cd install feature, using the "-import" and "-codebase" args.
/Dietz

Similar Messages

  • HELP - Change cache location for ALL users.

    I am in desperate mode here, so I appreciate any help...
    I just installed 1.4.2_08 on my Citrix environment. I have a GPO that only allows 30mb of data to be saved in their profile and this is the max that I can make it. The problem is that the website created that uses this version of JRE creates a an 11mb file twice in the users profile. This blows up their session and they are no longer allowed to log off until I go in and clear it off. I've only had about 10 users that I have had to do this too, but I can see it's going to get a lot higher. Basically I want to change the cache location for all users, not just my profile, and redirect it to the users 'My Documents' folder. This way my GPO that then redirects the users 'My Documents' folder can have this folder on their home drive.
    Please, help! Thanks a bunch!!

    I had the same problem, but fixed it with this solution:
    I added [deployment.user.cachedir=c\:\\temp\\cache] to the deployment.properties file.
    (located at C:\Documents and Settings\<USER>\Application Data\Sun\Java\Deployment)
    Then i deleted the cache directory.
    Now i am making my one Transform file for the deployment of java 1.6.0_05.
    Does anyone knows how i can change the cache files etc in my transform file.
    Thanks a lot!!

  • The cache about Java Web Start

    can anybody tell me about the meaning of the jws cache structure?
    i want to konw the meaning of
    P8080
    DMJNLPExamples
    DMapp
    DMlib
    RTjbossall-client.jar
    RCjbossall-client.jar
    RMjbossall-client.jar
    what is meaning of the prefix of this directory and file?
    thanks in advance!
    Gordon

    Warning - the cache structure is internal to Java Web Start and subjuct to change between versions of javaws.
    In fact Sun has plans that would merge the webstart and plugin cache in 1.6.0, completely changing the structure.
    That being said, in the current format, the prefix chars are as follows (from the source bundle of 1.4.2):
    first leter is a Type, second leter is an Attribute:
    Types:
    public final static char DIRECTORY_TYPE = 'D'; // Used internally
    public final static char TEMP_TYPE = 'X'; // Used internally
    public final static char VERSION_TYPE = 'V'; // Used internally
    public final static char INDIRECT_TYPE = 'I'; // Used internally
    public final static char RESOURCE_TYPE = 'R'; // JAR/CLASS/IMAGE
    public final static char APPLICATION_TYPE = 'A'; // Application-Desc
    public final static char EXTENSION_TYPE = 'E'; // Extension-Desc
    public final static char MUFFIN_TYPE = 'P'; // Muffins!
    Attributes:
    public final static char MAIN_FILE_TAG = 'M'; // The main resource (Jar, image or muffin)
    public final static char NATIVELIB_FILE_TAG = 'N'; // A directory where a native lib jar gets expanded into
    public final static char TIMESTAMP_FILE_TAG = 'T'; // The timestamp file
    public final static char CERTIFICATE_FILE_TAG = 'C'; // A certificate stored with the resource
    public final static char LAP_FILE_TAG = 'L'; // LocalApplicationProperties
    public final static char MAPPED_IMAGE_FILE_TAG = 'B'; // Translated images (such as bmp)
    public final static char MUFFIN_ATTR_FILE_TAG = 'U'; // running out of letters - U is for mUffin
    /Dietz

  • A few questions about signing JARs for Web start

    I'm still a bit new to all this, so just want to clear a few things up.
    I'm currently trying to publish an application using Web start, so i know I have to sign all the JARs, as it needs to do some writing to the hard drive.
    1. I have my main JAR file, and then two "third party" JAR files in the /lib subfolder, I take it I need to sign those two as well, does it matter that I don't have the .class file for those two, as I didn't write them?
    2. I'm running the JARSIGNER program with exactly the same command line apart from the filename of the .jar file, is that correct? or do I need a different certificate for each .jar file?
    Just can't seem to get all three signed, Web start says one different one isn't signed each time I try it out.
    3. When signing, does it add something to the end of the JAR file itself? as I can't see any extra files created.

    Signing adds entries in the mainifest, not in the main file list in the jar file.
    You can sign third party jar files, but it is not advisable. An alternative is to put third party jars in a seperate extension jnlp file, if they need all-permissions, you can get the third party jars already signed by whoever supplied them. If not, you do not need to request all-permissions in the extension jnlp file, and that part of the code will be run in the secure sandbox.
    /Andy

  • Widget Foundation: URL for Web Start installation seems to be invalid

    Hi,
    the URL from the Widget Foundation installation document for the JAVA Web Start installation (http://nvpal168.pal.sap.corp:1080/wfws/foundationWS.jnlp)
    can not be resolved. Is the server actually running ? Maybe it is a wrong URL ?
    Any help is appreciated
    Marcus

    Hi Marcus,
    Though I have no idea of the internal site, I'll help you install the SAP Widget Foundation on your system.
    1) Pls download the Widget Foundation from the downloads section on SDN : https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/webcontent/uuid/d026c9ae-ab33-2a10-70be-dafcd3fc9a82 [original link is broken] [original link is broken].
    2) Make sure you have Java 1.6 and above installed on your machine.
    3) Extract the Zip file that you downloaded in Step 1. You will find a <b>SAPWidgetFoundation.jar</b> file in it.
    4) On the command prompt type <b>java -jar SAPWidgetFoundation.jar</b> and the installer will launch.
    Have fun !

  • Creating a custom cache location for multiple users

    If I use the browser.cache.disk.parent_directory method (http://kb.mozillazine.org/Browser.cache.disk.parent_directory) to set up a specific folder for the cache:
    Are there advantages to specifying a different (sub)folder for each of the users on my computer, or will Firefox handle things automatically just as well?

    Note that only one user can use a specific profile at the time, so if there is any chance that two or more users are active at the same time then you need separate profile folders and separate cache folders for each user.
    Note that you can also set prefs via a mozilla.cfg auto configuration file.<br />
    Such a configuration file can contain JavaScript, so you can detect the user profile (ProfD) and environment variables.
    See:
    *http://kb.mozillazine.org/Locking_preferences
    These functions can be used in the mozilla.cfg file:
    defaultPref(); // set new default value
    pref(); // set pref, but allow changes in current session
    lockPref(); // lock pref, disallow changes

  • Trying to find the location for getting started with hootbar

    I added the hootbar addon and on the information page about the addon it said you could go to the getting started page to find information on how to use hootbar but I can't locate the page

    You can try this link:
    http://hootsuite.com/hootbar

  • Java 1.5 required for Web Start?

    I just got our application to download and run through JWS, but it appears that WebStart is forcing all my clients to upgrade their JRE to 1.5. My JNLP clearly specifies 1.4.2+ as the required JRE, however. Is there somewhere other than the JNLP that the JRE version might be specified, or is there some kind of 1.5 requirement? Maybe it's just downloading the most recent version by default?
    Thanks,
    Dave

    can u post your JNLP file

  • Looking for alternative to Web Start

    Hello all,
    After a couple years of using Java Web Start to deploy our educational software to schools, we're starting to realize that we need a new deployment strategy.
    h4. Here's what we're looking for:
    1. All files should be kept in OS-standard locations for applications, such as Program Files for Windows and Applications for Macs. Deployment of this program should be no harder for admins than for any other application. That means nothing in the User home folder.
    2. Can be installed directly from a CD or USB stick
    3. Can be easily updated as new versions are rolled out (i.e. can download the new jars from our servers).
    Does anyone know anything off the shelf that works like this?
    h4. Here are the problems with what we have now:
    1. Web Start deploys jars (by default) into Users' home folders. This causes the following problems:
    1a. Every user on the computer has to install the program individually.
    1b. System administrators don't have any tools or patters for large-scale deployment of programs into user's home folders.
    1c. Users may have limited space on their home folders.
    1d. Users' home folders may be on networked drives, meaning that all the jars need to be fetched over the network every time they run.
    1e. Users' home folders may be regularly cleaned.
    2. Although Web Start's cache folder can be changed, users may not have write access to those locations, so Web Start will not function for those users if they need to download new jars. While this may be ok for our software alone, it will break any other Web Start application. Web Start cannot have different caches for different applications.
    2b. Also, administrators don't have standard ways to deploy to random cache directories on computers.
    3. There is no easy way to install Web Start applications from CDs. Jar files have to go into the right folders as if they were being downloaded from a server. We have a way of doing this by starting up a Jetty server, but it is not very robust.
    ...however, we still want the ease of Web Start's updating. We want to be able to push out new versions, which admins could update and deploy to their schools the way they do for all other applications, and we also want to support rapid-release cycles for our researchers and people working on the cutting edge of our software. Preferably this would need to involve some kind of jar-differencing, as users should only have to download the smallest subset necessary.
    I'm sure we could write this ourselves, but I imagine we aren't the first people to have these kinds of requirements and problems with Web Start. Has anything been written that seems to approach what we want?
    Thanks,
    Sam

    If you're willing to pay, you might wish to try Denova's JExpress. http://www.denova.com/
    It creates proper installers and has autoupdate support. I've not tried it but it seems to be the off the shelf solution you're looking for.
    You might wish to roll your own by using the open source netx implementation of the jnlp protocol. The basic idea is that you create an installation exe for Windows and package for the Mac wrapped around the netx application. It's a bit fiddly but it does work (I've done this myself). For the time you spend doing this though, you'd probably be better off with JExpress.

  • Where is "Web Server Instance Location" for SWSE installation in HP-UX?

    Hi there,
    We are using Siebel CRM SIA 8.1.1, our database version is Oracle 10g 10.2.0.2.
    For Siebel Web Server Installation in HP-UX, it will asked where is the location for "Web Server Instance Location" in HP-UX.
    Previously we also having problem for SUN Solaris, but there's a metalink on this (someone else raised it) and we manage to solve it.
    For HP-UX, we are using HP Web Server. According to bookshelf, we should use HP Apache Web Server?
    Kindly advice where is the location for "Web Server Instance Location" as per question in the installation.
    I believe our Web Server is installed in /opt/hpws.
    Regards,
    Rizwan

    Issues solved.
    Basically the location will /opt/hpws/apache32
    Currently Siebel 8.1.1 is only support apache32 bit.
    Things that need to consider, make sure you installing the same user as the user in apache32 folder.
    Means if you install apache32 as root, then you need to install SWSE as root.
    In my case, even thought i install as root, the apache32 folder will belong to BIN user. Not sure why.
    Then we had to install SWSE as bin user, then we manage to get the execution successfull msg.l
    Thanks

  • Java3D via Web Start

    Is there a way to specify in the jnlp the requirements of the java3D installation to be able to run this application?

    I got most of this information from a combination of searching these forums, the Web Start Developer's Guide, at http://java.sun.com/products/javawebstart/docs/developersguide.html, and the Unofficial JNLP/Web Start FAQ, which is at http://lopica.sourceforge.net/faq.html. Any mistakes or misconceptions in this explanation are my own, but if it leaves you confused or if I have failed to answer any questions, those are the documents that allowed me to get a Java3D application running via Web Start.
    First important point: you WILL NEED to sign all the .jars you distribute, so if you don't know how to do that, go read a tutorial on security and jarsigner/keystores FIRST. You can create your own cert to sign against, so long as your users trust you enough to click 'Yes' when Web Start asks them if they trust you. :)
    So, now you've gotten yourself set up with a signing cert, either your own or a $400 one from Verisign or similar. Now, you're going to need to sign copies of your application .jar, any other .jars you distribute (log4j.jar, the java3d jarfiles from the java3d distribution, in my case I have a data .jar that's separate from the application code .jar, etc.) Note that, to make Web Start transparently distribute the Java3D jars along with your application, you do in fact have to unpack them from the installer, sign them, and include them in the way I outline below. The approach I take is to copy all the files to some directory as unsigned.<original jar name>. Then, the jarsigner command line looks like this:
    jarsigner -keystore /path/to/keystore/file -storepass <password> -keypass <other password> -signedjar <original jar name> unsigned.<original jar name> keyAlias This applies equally for any other .jars you distribute (log4j is a popular example), including your own application .jar.
    If you use ant, the <signjar> task will do all the above for you! Have a look at the Ant manual.
    Put all these signed jarfiles in some directory where your web server can serve them up, e.g., /var/www/<yourapp>/lib on the Web Start server. Now all the pieces needed are in place and securely signed so that Web Start will trust your application to use them; you just have to tell Web Start to make them available to the runtime classpath. Below are my .jnlp file and main() method from my java3d application. Note especially the <security> stanza of the JNLP file, which is what both requires the signing of all the .jars, and allows Java3D to talk to the DirectX or OpenGL layer, access files stored on disk (the .jars in the Web Start cache, for example), and
    just generally behave as a native app might.
    First the JNLP file:
    <?xml version="1.0" encoding="utf-8"?>
    <!-- JNLP File for Your Application -->
    <jnlp
      spec="1.0+"
      codebase="http://your.webstart.server/yourapp"
      href="http://your.webstart.server/yourapp/yourapp.jnlp">
      <information>
        <title>Your Application</title>
        <vendor>Some Company</vendor>
        <!--<homepage href="docs/help.html"/> -->
        <description>This is your application</description>
        <description kind="short">A longer application description</description>
        <!-- <icon href="images/swingset2.jpg"/> -->
        <offline-allowed/>
      </information>
      <security>
          <all-permissions/>
      </security>
      <resources>
           <j2se version="1.4.2" href="http://java.sun.com/products/autodl/j2se" initial-heap-size="64m" />
           <jar href="http://your.webstart.server/yourapp/lib/yourApplication.jar"/>
           <jar href="http://your.webstart.server/yourapp/lib/some3rdPartyLibrary.jar"/>
      </resources>
      <resources os="Windows">
        <jar href="http://your.webstart.server/yourapp/lib/core/Java3D/jars/j3d/windows/j3daudio.jar"/>
        <jar href="http://your.webstart.server/yourapp/lib/core/Java3D/jars/j3d/windows/j3dcore.jar"/>
        <jar href="http://your.webstart.server/yourapp/lib/core/Java3D/jars/j3d/windows/j3dutils.jar"/>
        <jar href="http://your.webstart.server/yourapp/lib/core/Java3D/jars/j3d/windows/vecmath.jar"/>
        <nativelib href="http://your.webstart.server/yourapp/heartcad/lib/core/Java3D/jars/j3d/windows/j3dDLL.jar"/>
      </resources>
      <!-- Linux IBM J2RE 1.3.0 -->
      <resources os="Linux" arch="x86">
        <jar href="http://your.webstart.server/yourapp/lib/core/Java3D/jars/j3d/linux/i386/j3daudio.jar"/>
        <jar href="http://your.webstart.server/yourapp/lib/core/Java3D/jars/j3d/linux/i386/j3dcore.jar"/>
        <jar href="http://your.webstart.server/yourapp/lib/core/Java3D/jars/j3d/linux/i386/j3dutils.jar"/>
        <jar href="http://your.webstart.server/yourapp/lib/core/Java3D/jars/j3d/linux/i386/vecmath.jar"/>
        <nativelib href="http://your.webstart.server/yourapp/lib/core/Java3D/jars/j3d/linux/i386/j3d.so.jar"/>
      </resources>
      <!-- Linux SUN JRE1.3.1 -->
      <resources os="Linux" arch="i386">
        <jar href="http://your.webstart.server/yourapp/lib/core/Java3D/jars/j3d/linux/i386/j3daudio.jar"/>
        <jar href="http://your.webstart.server/yourapp/lib/core/Java3D/jars/j3d/linux/i386/j3dcore.jar"/>
        <jar href="http://your.webstart.server/yourapp/lib/core/Java3D/jars/j3d/linux/i386/j3dutils.jar"/>
        <jar href="http://your.webstart.server/yourapp/lib/core/Java3D/jars/j3d/linux/i386/vecmath.jar"/>
        <nativelib href="http://your.webstart.server/yourapp/lib/core/Java3D/jars/j3d/linux/i386/j3d.so.jar"/>
      </resources>
      <application-desc main-class="com.some.company.yourapp.YourApp"/>
    </jnlp> And then the main() method:
         public static void main(String[] args) throws Exception {
              if(System.getProperty("javawebstart.version") != null) {
                   // for Web Start it is necessary to "manually" load in native libs
                   String os = System.getProperty("os.name");
                   log.debug("loading " + os + " native libraries ..");
                   if (os.startsWith("Windows")){
                        // order matters here!
                        // load those libs that are required by other libs first!
                        log.debug("j3daudio.dll .. ");
                        // drop ".dll" suffix here
                        System.loadLibrary("j3daudio");
                        log.debug("OK");
                        log.debug("J3D.dll .. ");
                        System.loadLibrary("J3D");
                        log.debug("OK");
                   } else if (os.equals("Linux")){
                        log.debug("libj3daudio.so .. ");
                        // drop "lib" prefix and ".so" suffix
                        System.loadLibrary("j3daudio");
                        log.debug("OK");
                        log.debug("libJ3D.so .. ");
                        System.loadLibrary("J3D");
                        log.debug("OK");
                   } else {
                        throw new Exception("OS '" + os + "' not yet supported.");
              // and then launch the app
              new MainFrame(new yourApp(), width, height);
         }

  • PKGBUILD provides for web servers

    I've noticed that the PKGBUILD file for apache doesn't use the provides array.  After that, I started wondering if anyone has used it for web servers, so:
    If one were to create a PKGBUILD for an alternative web server (http://www.mathopd.org), what should be added to the provides array to show that this package provides a web server?
    Or, if there isn't anything like that, do any of the TUs or Developers have a preference before I simply put, "web-server" in there?

    Actually, Wesley, in that case foo-data really should be fixed - provides isn't meant to be used that way, although it CAN be used that way (and I did it once for audacious, but that's beside the point
    sinecure, this has actually been talked about for webservers, however nothing was decided.  You can put 'web-server' in there, but it won't really help anything because nothing else provides web-server - what we need is a standard.  This issue actually got a bit bigger as people started talking about default locations for web files and such, and nothing was ever done (afaik)

  • Multiple jre versions using same cache location

    Hi,
    i searched the web but couldnt find an answer.
    I have a Terminal Server deployment with various installed jre Versions (1.6x and 1.7x) on the same Server as well as on different Server Silo Setups.
    But for all Servers i configured the Cache Location to H:\Java-Cache (Homefolder of the user) in the deployment.properties file.
    1. are there any Problems to expect when using the same Cache Folder for many different jre Versions (jre 6/7/8) ? Any knows issues about that ?
    2. is it supported to share the same cache Location (for example D:\java-cache) for many users ? i cannot find ony official KB or Oracle Note about this.
    There are a few Blog Article out there which describe to configure the Cache Location on a terminal Server to a local location like D:\java-cache shared by
    many users. Does it depent on the Java webstart application if tha works well ?
    Thanks a lot,
    Marcus

    Hi Tyler,
    In my opinion, you could go ahead with first option - have multiple JRE's and maintain the environment variables accordingly.
    This should not be a problem as the envrionment variable would take care of which JRE is used. Also as you have only another ABAP system on the same server, the other older JRE would only be required during the SAPInst operations. Non-existence of a Java system makes things simpler here
    Regards,
    Srikishan

  • 'Unable to Launch Application Error' - Java Web Start Running Under MS IIS.

    I am attempting to render the following .jnlp in MS IE:
    <?xml version="1.0" encoding="utf-8"?>
    <!-- JNLP File for LottoMadness Application -->
    <jnlp
       codebase="http://localhost/LottoMadness/"
       href="LottoMadness.jnlp">
       <information>
         <title>LottoMadness Application</title>
         <vendor>Rogers Cadenhead</vendor>
         <homepage href="http://localhost/LottoMadness/"/>
         <icon href="lottobigicon.gif"/>
       </information>
       <resources>
         <j2se version="1.5"/>
         <jar href="LottoMadness.jar"/>
       </resources>
       <application-desc main-class="LottoMadness"/>
    </jnlp>I've deployed the .jnlp, .gif, and .jar to MS IIS, running locally on my PC.
    When I attempt to render the .jnlp in IE I obtain an 'Application Error' window stating 'Unable to Launch Application'. Clicking details gives me:
    com.sun.deploy.net.FailedDownloadException: Unable to load resource: http://localhost/LottoMadness/LottoMadness.jnlp
         at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.getCacheEntry(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source)
         at com.sun.deploy.net.DownloadEngine.getResource(Unknown Source)
         at com.sun.javaws.Launcher.updateFinalLaunchDesc(Unknown Source)
         at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
         at com.sun.javaws.Launcher.launch(Unknown Source)
         at com.sun.javaws.Main.launchApp(Unknown Source)
         at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
         at com.sun.javaws.Main$1.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)I have configured MS IIS for Web Start, by setting the Extension/Content Type fields to .jnlp and application/x-java-jnlp-file.
    (The .jnlp is basically from 'Programming with Java in 24 Hours', as this is the book I am learning Java from.)

    AndrewThompson64 wrote:
    I am not used to seeing references to a local server that do not include a port number.
    E.G. http://localhost:8080/LottoMadness/
    I have deployed the following HTML (HelpMe.html) to the web server:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
         <title>Untitled</title>
    </head>
    <body>
    Help Me!
    </body>
    </html>When I attempt to render the URL in IE, I see the page just fine. The URL is use is:
    http://localhost/LottoMadness/HelpMe.htmlSo, I think my web server setup and usage is ok.
    >
    As an aside, what happens if (your MS IIS is running and) you click a direct link to..
    [http://localhost/LottoMadness/LottoMadness.jnlp|http://localhost/LottoMadness/LottoMadness.jnlp]
    When I click this link I get the error and exception I cited in my previous post.

  • How to run 64-bit native code with Java Web Start

    This question has probably been asked many times, but I couldn't find anything in my searches.
    How can I get Java Web Start on a Solaris client (Solaris 10 in this case, with JRE 1.5) to run a java application that includes a 64-bit native code library? The application downloads fine, including the jar file that has the native shared object, but when the native library is loaded by the java application, I get a "wrong ELF class: ELFCLASS64" error.
    I assume that is because Web Start is invoking the 32-bit java VM, which can't load a 64-bit library. I tried configuring Java Web Start to use the 64-bit VM (by setting the path to java to ".../jre/bin/sparcv9/java" in the javaws console) but then I get an error that says "Can't load library: .../jre/lib/sparcv9/libdeploy.so".
    Does Java Web Start support 64-bit native code, and if so, what do I need to do differently?
    Thanks.

    No it can't. On the Sun download page of the JRE it says that 64 Bit systems need to use the 32 Bit JRE to execute Plugins - this might be the same for Web Start apps.

Maybe you are looking for