Menu

#5 How to run TreeView-1.1.6r4-osx on macOS Catalina?

v1.0 (example)
closed
None
8
2021-11-20
2020-10-26
No

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

Discussion

  • Alok Saldanha

    Alok Saldanha - 2020-12-10

    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: helpPlugins.png). You should see some funny path, helpPlugins2.png . To fix the path, click on "Browse" and locate the plugins directory (in my case "/Applications/Treeview/plugins", helpPlugins3.png). Next click the "Scan New Plugins" button. This should scan and load all required plugins, helpPlugins4.png. When you close that dialog, you should see the loaded plugins helpPlugins5.png. 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
  • Alok Saldanha

    Alok Saldanha - 2020-12-12

    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.

     
  • Alok Saldanha

    Alok Saldanha - 2020-12-12
    • private: Yes --> No
     
  • Alok Saldanha

    Alok Saldanha - 2020-12-12

    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

    xattr /Applications/Treeview/Java\ Treeview.app
    

    You should see "com.apple.quarantine" as the response. You can then remove the attribute with

    xattr -d com.apple.quarantine /Applications/Treeview/Java\ Treeview.app
    
     
  • Alok Saldanha

    Alok Saldanha - 2020-12-13

    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/

     
  • Alok Saldanha

    Alok Saldanha - 2021-11-20
    • status: open --> closed
    • assigned_to: Alok Saldanha
     
  • Alok Saldanha

    Alok Saldanha - 2021-11-20

    Closing since I believe it is fixed in 1.2.0.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.