What is the best practice for referencing a full file path in my deployed application?

17 Ansichten (letzte 30 Tage)
I am creating a compiled application using MATLAB Compiler, and want to make sure I'm following good pathing practices. I was reading the blog post here, which says that a compiled application behaves more consistently if it uses relative paths (or anchors paths to a known root via matlabroot or ctfroot functions).
In my application, I need to make a connection to a JDBC database. This requires configuring a JDBCConnectionOptions object, which takes in the full file path to the JDBC driver as an input argument, so I need to be able to reference the full file path. I have included the JDBC driver in my compiled application, and know the relative path of the file.
I tried following the instructions in the blog post which suggest using paths relative to the ctfroot; however, in newer (R2018b+) releases of MATLAB you cannot do this in the same way (the directory structure for compiled apps has changed and there is now an additional sub-directory between the ctfroot and the files included with the compiled application).
How can I go about referencing the full path for my JDBC driver in the deployed app?

Akzeptierte Antwort

MathWorks Support Team
MathWorks Support Team am 8 Mai 2020

You are correct that the folder structure has changed from R2018b forward.

In general, the best practice to use when referencing files included in the CTF is to use just the filename, as all files that you include with your application are added to your application's path. However, in cases where this is not possible (e.g. you need to specify a full file path as a function argument), you can do the following:

Use the which function to locate your desired JDBC file on the MATLAB path. For instance, if you include the 'mysql-connector-java-8.0.20.jar' file in your compiled application, you can find the full file path in your compiled application by executing:

>> driverPath = which('mysql-connector-java-8.0.20.jar');

You can then pass the resulting driverPath variable as an input to the setConnectionOptions function.

  3 Kommentare
Kautuk
Kautuk am 16 Dez. 2025 um 8:04
Hello @cr, you can contact MathWorks Technical Support who may be able to assist you better: https://www.mathworks.com/support/contact_us.html
cr
cr vor etwa 19 Stunden
MW tech support, at least in this region, do not honour their legal commitments of supporting installation issues with compiler/compiled products on perpetual licences without up to date on maintenance. This is is not even an installation issue, I'm certain it would be waste of time.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Application Deployment finden Sie in Help Center und File Exchange

Produkte


Version

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by