Important Notice: On February 29th, this community was put into read-only mode. All existing posts will remain but customers are unable to add new posts or comment on existing. Please feel to join our Community Discord for any questions and discussions.

updating old versions of software with PDQ's package library?

so our environment has a large number of computers running multiple different versions of various programs that we install through PDQ's package library.


For example, we use the Java packages provided by PDQ to deploy to new PC's etc.

over the last few years, however, we have build up a number of workstations running very old versions of Java:

I want to create a schedule in PDQ Deploy that checks all workstations for out of date versions of various core apps we deploy with the PDQ packages so that they always stay up to date.

What is the best way to update all these old versions to the latest version of Java?


Is it simply a case of just deploying the latest Java package to these machines?


I would have thought not becuase looking at the steps for the latest Java 10 package, it only looks for the previous latest version of that current release of Java so it seems to only look for versions of Java 10 that are older than the current package. Nowhere does it say it looks for older versions.

Would I just need to create a separate package that uninstalls java, regardless of which version and then run that before running the latest Java package?





Date Votes
  • I may be answering my own question here but Java uninstalls previous versions of java when running the installer, is this correct?

    (taken from the Java website)


    so this would mean that I can just run the package on workstaions running old versions of Java and the installer will check for and remove old versions of java currently installed?

  • > I may be answering my own question here but Java uninstalls previous versions of java when running the installer, is this correct?


    This is true now, but earlier versions of Java did not do that. Being that you have versions going all the way back to Java 6, I'm not sure if the latest Java installer will uninstall a version that old. You may just have to test this with one of your machines and see if it works as expected.

  • >Would I just need to create a separate package that uninstalls java

    We have packages in the Package Library for uninstalling various versions of Java:

  • Hey,

    Thanks for this. I did actually find the uninstall packages for Java in PDQ - I didn't see them at the time of writing my comment. these packages are exactly what I was after.


    This was my method to get workstations running old versions.


    1) Download the uninstaller for the version of java you want to uninstall (in my case, I downloaded 6, 7, and 8 only as 8 and above has the uninstaller built in)

    2) In Deploy, create a schedule (I called mine Uninstall Java 6, Ininstall Java 10

    3) set target to 'Collection Library\Runtimes\Java (JRE)\Java 6'

    4) in the packages tab, add the Java 6 uninstall package provided by PDQ, and secondly add the Java 10 package as the second step.

    I did the same for Java 7.


    For Java 8, 9 and 10, I merged them all together with the Java 8 unisntaller / Java 10 install package



  • I'm now wondering if these schedules could all be merged into a single schedule?

    Like so:


    my understanding is that all targets will go through trying to uninstall Java 6, 7, and 8, and then finally installing Java 10.

    This to me looks like a bunch of else-if statements.


    Is this method better, or my original method?



  • That last example you posted will uninstall Java 6, 7, and 8, and then install 10 just like you said.

    You'll want to configure each step in your package with a condition specifying which collection that step is referring to, otherwise every step will apply to every machine in each of those collections - so the Uninstall Java 6 All step would have Conditions -> PDQ Inventory Collection -> Collection Library\Runtimes\Jave (JRE)\Java 6 set. This way, only machines currently in the Collection Library\Runtimes\Jave (JRE)\Java 6 collection will have the Uninstall Java 6 All package deployed to them.

    It may also be a good idea to make sure each step has Options -> Error Mode set to Stop Deployment with Error. This will make sure your final step (Install Java 10) doesn't continue before the previous version of Java is uninstalled. It's not necessary though, and completely depends on what you want and what works best for your situation.