# Importing JAR files

**URL:** <https://forum.inductiveautomation.com/t/importing-jar-files/10811>\
**Category:** Ignition\
**Created:** [November 20, 2015, 12:18am UTC](https://forum.inductiveautomation.com/t/importing-jar-files/10811 "2015-11-20T00:18:01Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![cmisztur2](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cmisztur2/32/4243_2.png) [@cmisztur2](https://forum.inductiveautomation.com/u/cmisztur2)\
**Post date:** [November 20, 2015, 12:18am UTC](https://forum.inductiveautomation.com/t/importing-jar-files/10811/1 "2015-11-20T00:18:01Z")

</div>

I have searched the forum and have an idea on how to include third party Python libs, but what about third party JAR files?

For example I want to use Jyson library to work with JSON. Where would I place this JAR file?

Thanks

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 20, 2015, 1:25am UTC](https://forum.inductiveautomation.com/t/importing-jar-files/10811/2 "2015-11-20T01:25:12Z")

</div>

There’s two ways.

The first is easiest, but not supported or endorsed by us: you to simply drop the jar into the lib/core/gateway, lib/core/client, or lib/core/common depending on the scopes you need access to it in.

The second has much more overhead, but is the way our design services team does it as well: create a module using the Ignition SDK and expose your own scripting functions to make use of one or more 3rd party libraries.

---

<div class="post-metadata">

**Author:** ![cmisztur2](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cmisztur2/32/4243_2.png) [@cmisztur2](https://forum.inductiveautomation.com/u/cmisztur2)\
**Post date:** [November 2, 2017, 1:33am UTC](https://forum.inductiveautomation.com/t/importing-jar-files/10811/3 "2017-11-02T01:33:43Z")

</div>

Sorry to bring this from the dead but the only way that works for me is by using sys.path.append(jar). Is there any way to actually reference the jars after they are distributed to the client?

edit: well I put the jar into pylibs since I have a reference to that folder

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [November 2, 2017, 12:07pm UTC](https://forum.inductiveautomation.com/t/importing-jar-files/10811/4 "2017-11-02T12:07:18Z")

</div>

I think the requirements have changed a little: [Adding java custom classes to Ignition](http://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/6?u=kevin.herron)

---

<div class="post-metadata">

**Author:** ![cmisztur2](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/cmisztur2/32/4243_2.png) [@cmisztur2](https://forum.inductiveautomation.com/u/cmisztur2)\
**Post date:** [November 2, 2017, 1:47pm UTC](https://forum.inductiveautomation.com/t/importing-jar-files/10811/5 "2017-11-02T13:47:13Z")

</div>

Ah yes, that makes sense.

---

<div class="post-metadata">

**Author:** ![PRAMANJ](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pramanj/32/66935_2.png) [@PRAMANJ](https://forum.inductiveautomation.com/u/PRAMANJ)\
**Post date:** [March 6, 2019, 4:55pm UTC](https://forum.inductiveautomation.com/t/importing-jar-files/10811/6 "2019-03-06T16:55:47Z")

</div>

> [@Kevin.Herron](#):
>
> The first is easiest, but not supported or endorsed by us: you to simply drop the jar into the lib/core/gateway, lib/core/client, or lib/core/common depending on the scopes you need access to it in.

This first way doesn't seem to work for me. I restarted the designer but not gateway server, I will try to restart gateway as well and see.

> [@Kevin.Herron](#):
>
> The second has much more overhead, but is the way our design services team does it as well: create a module using the Ignition SDK and expose your own scripting functions to make use of one or more 3rd party libraries.

If I have to access it from client as well as gateway then i will have to create two modules in client and gateway scope I guess. However the gateway module can simply startup and use a few of the libraries and shutdown. Is it OK or it has to remain in memory?
