2

My government made a Java app to submit tax documents.

That app, it's actually a very outdated version of Eclipse.

When I run this ugly mess, I get a dialog that prompts me to install Java SE 6 (Legacy) from Apple.

I'd like to avoid that, for security issues, and also because I don't want to mess my Java installation

How could I force it to run on my Java 8 jvm?

The app is this: https://telematici.agenziaentrate.gov.it/Main/Desktop.jsp

6
  • 1
    It doesn't mess with your Java installation, it installs as a legacy framework for certain applications. AFAIK, there is no workaround: the app you need to run requires Java SE 6 to run.
    – xxxxxxxxx
    Feb 12, 2019 at 19:04
  • last time i did that, i spent hours to fix the mess the java installer did. If there's a way to edit some plist to let it use the newer java... after all their website says it want java 1.7, not 1.6 Feb 12, 2019 at 19:07
  • I used to have to do this to run an old version of Adobe stuff. It installs a set of "legacy components", it does not replace your Java 8 install. You installed this? support.apple.com/kb/dl1572?locale=en_US
    – xxxxxxxxx
    Feb 12, 2019 at 21:36
  • Java 6 is past its end of life by several years - I would ask the website supplier how to get it.
    – mmmmmm
    Feb 12, 2019 at 23:31
  • As it says you need 1.7 rather than 1.6 then I would download 1.7 JDH from Oracle and install that - the chnage the eclipse.ini file touse that Java. Java >= 1.7 can have several versions installed at once.
    – mmmmmm
    Feb 12, 2019 at 23:36

2 Answers 2

3

You most likely can not avoid this. The app you needs to use is built to run on the Java SE 6 framework. Java 8 is not backwards compatible, so you cannot "force" this app to run on Java 8. The only way to avoid installing the Java 6 SE components is if you can somehow avoid using this particular app.

You do not want to install using the Java installer found on the Oracle website. This will result in you having multiple copies of Java on your system, and it will be a mess.

Follow the link in the notice you get, (I think it's this https://support.apple.com/kb/dl1572?locale=en_US) it will take you to an Apple download of a very specific set of "Java SE 6 Legacy runtime components". This can exist alongside your Java 8 installation and is used by certain outdated software (I used to have to install this to use an older version of Adobe Creative Suite before I updated to the CC version).

** I admit I'm not 100% sure that the SE 6 Legacy components are compatible with Mojave, but I think that they are and that there was maybe a notice that Mojave would be the last compatible version of macOS.

1

Like most of the answers on the web around this message dialog, the answer from @Morgan Rodgers might be correct in the case that the application really does have a specific need for that ancient version of Java. However, for many applications, a current/modern version of Java will work just fine except that they are wrongly configured.

At least on Mavericks 10.9 through Catalina 10.15, you can edit the JVM capabilites to correctly reflect what your Java 10, 11 etc can do in this file:

/Library/Java/JavaVirtualMachines/<your modern java version>/Contents/Info.plist

You will need to replace the section around line 27 which looks like this:

<key>JVMCapabilities</key>
    <array>
        <string>CommandLine</string>
    </array>

with the correct set of capabilities:

<key>JVMCapabilities</key>
    <array>
        <string>JNI</string>
        <string>BundledApp</string>
        <string>WebStart</string>
        <string>Applets</string>
        <string>CommandLine</string>
    </array>

As 1 mentions, the editing may need to be done via text editor using a temporary copy, which is moved back into place using sudo. Once copied back, don't forget to check the timestamp and content of the updated file reflect your edit and reboot.

1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .