2 Replies Latest reply on Mar 16, 2020 6:10 PM by Vitaliy Borisov

    Using Extract API 2.0 without setting PATH variable

    Walter Beking

      Hi everybody,


      is it possible to use the Extract API in JAVA without setting the PATH variable ?


      I downloaded and extracted "extractapi-x64-2018-2-0" for Windows from https://onlinehelp.tableau.com/current/api/extract_api into "C:/Tab".

      Now I am trying to set the path to the libraries(C:/Tab/bin) programmatically.


      For example running


      as expected returns the error:

      java.lang.UnsatisfiedLinkError: Unable to load library 'TableauHyperExtract': Native library (win32-x86-64/TableauHyperExtract.dll) not found in resource path


      Now I am trying to set the path to the library directly with

      com.sun.jna.NativeLibrary.addSearchPath("TableauHyperExtract", "C:/Tab/bin");


      System.setProperty("jna.library.path", "C:/Tab/bin");


      Now my code looks like this

      com.sun.jna.NativeLibrary.addSearchPath("TableauHyperExtract", "C:/Tab/bin");
      com.tableausoftware.hyperextract.Extract extract = new Extract( "C:/myextracts/sampleextract.hyper" );

      and it looks like the TableauHyperExtract.dll gets found.


      But now I am getting the following error

      com.tableausoftware.TableauException: hyperdstarter.exe is not on the environment path \\?\C:\Tab\bin\..\bin\hyper
          at com.tableausoftware.hyperextract.Extract.<init>(Unknown Source)
          at de.myproject.HyperSample.createExtract(HyperSample.java:65)
          at de.myproject.HyperSample.main(HyperSample.java:26)


      Looking into C:\Tab\bin\hyper I can find the mentioned hyperdstarter.exe.


      Has anybody come across the same Problem?(And maybe solved it?)

      Or does anybody know if it is not possible by design to use the Extract API without setting the PATH variable ?


      Thanks in advance