Dear Alok and colleagues,
For over a decade, I have been using Cluster (from the Eisen lab; http://bonsai.hgc.jp/~mdehoon/software/cluster/software.htm) and the Java TreeView that they recommand and that you built, to analyze gene expression and protein profile datasets.
Unfortunately, it seems that the Java version I currently have and that I run with macOS Catalina is a different version from the one needed to run TreeView (TreeView-1.1.6r4-osx requires Java SE 6, which is Java for OS X 2017).
Could you let me know how to fix this?, or whether there is an updated version of TreeView that would run on Catalina/latest Java (?), or maybe there is a much easier way to make it work (?)
(I am not a computational scientist, sorry for my limited knowledge, so it may be an extremely simple fix or my mistake for not knowing how to make it work...)
Let me know,
Kind regards,
Jean-Philippe
Dear Jean-Philippe,
I apologize for the delay in responding. I have gotten Java Treeview working with Mac OS X 10.15.7. Unfortunately, it requires a bit of hoop jumping. I would like to modernize Java Treeview in the coming months, but I will need to do some prototyping to see what is feasible. In the meantime, I can offer the following workaround:
1) As you correctly noted, Treeview requires Java for OS X 2017, which is available from
https://support.apple.com/kb/DL1572?locale=en_US
If you try to install this on Mac OS X 10.15.7, you will get an error "Java for macOS 2017-001 can't be installed on this disk: A newer version of this package is already installed" I was able to apply the following workaround to get Java for OS X 2017 installed:
https://www.l3harrisgeospatial.com/Support/Self-Help-Tools/Help-Articles/Help-Articles-Detail/ArtMID/10220/ArticleID/23780/Mac-OS-Catalina-1015-ENVIIDL-and-Legacy-Java-6-Dependencies
2) Treeview should now launch as a normal mac os x app. However when you go to open a file, you will get a dialog that says "No plugins loaded" and it will fail to open (see noPluginsLoaded.png). This is because Java 6 is running in a compatibility mode where the files are copied to a temporary location. To address this, you need to help Java Treeview find the plugins! Go to help->Plugins:
). You should see some funny path,
. To fix the path, click on "Browse" and locate the plugins directory (in my case "/Applications/Treeview/plugins",
). Next click the "Scan New Plugins" button. This should scan and load all required plugins,
. When you close that dialog, you should see the loaded plugins
. You should now be able to successfully open files with Treeview.
Unfortunately, Treeview does not store the location of the plugins directory, so you will need to repeat this step every time you open Java Treeview. I expect it will be easy to add support for saving this "backup plugin path", as well as a couple other features I have been thinking of. In the long term I probably need to move to a more modern framework than Java 6.
Last edit: Alok Saldanha 2020-12-10
Just a quick update, it seems that "app translocation" was an intentional security feature from OS X: https://www.synack.com/blog/untranslocating-apps/. Also, I notice that this discussion is marked private, but it may be of wide interest. I will mark it public unless you specifically want to keep it private.
Anyways, the easy fix (for now) is to remove the com.apple.quarantine attribute. If you open the Terminal app, you can verify that the attribute is present with
You should see "com.apple.quarantine" as the response. You can then remove the attribute with
It appears there is a path to a more modern java! I make a ticket for this: https://sourceforge.net/p/jtreeview/feature-requests/33/
Closing since I believe it is fixed in 1.2.0.