# Adding java custom classes to Ignition

**URL:** <https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202>\
**Category:** General Discussion\
**Tags:** ignition79, sdk, scripting\
**Created:** [August 30, 2017, 3:06pm UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202 "2017-08-30T15:06:37Z")\
**Posts on this page:** 18\
**Page:** 2

<div class="post-metadata">

**Author:** ![gabrielmatau](https://avatars.discourse-cdn.com/v4/letter/g/d2c977/32.png) [@gabrielmatau](https://forum.inductiveautomation.com/u/gabrielmatau)\
**Post date:** [August 2, 2018, 4:52pm UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/23 "2018-08-02T16:52:06Z")

</div>

Thanks Kyle for yur response, my class It’s in /lib/core/common you can help me please?

---

<div class="post-metadata">

**Author:** ![Kyle\_Chase](https://avatars.discourse-cdn.com/v4/letter/k/9de0a6/32.png) [@Kyle\_Chase](https://forum.inductiveautomation.com/u/Kyle_Chase)\
**Post date:** [August 2, 2018, 4:57pm UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/24 "2018-08-02T16:57:04Z")

</div>

HelloManager seems to be an example code written for the tutorial. Did you write and compile this into your jar file? However, there is no module named igniotionphone, unless you wrote it?

---

<div class="post-metadata">

**Author:** ![gabrielmatau](https://avatars.discourse-cdn.com/v4/letter/g/d2c977/32.png) [@gabrielmatau](https://forum.inductiveautomation.com/u/gabrielmatau)\
**Post date:** [August 2, 2018, 5:10pm UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/25 "2018-08-02T17:10:49Z")

</div>

Sure, the package name is igniotionphone is compile in igniotionphone.jar file.inside have hellomanager class, i locate paht /lib/core/common trying import to desing client ths is a test

---

<div class="post-metadata">

**Author:** ![gabrielmatau](https://avatars.discourse-cdn.com/v4/letter/g/d2c977/32.png) [@gabrielmatau](https://forum.inductiveautomation.com/u/gabrielmatau)\
**Post date:** [August 2, 2018, 8:56pm UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/26 "2018-08-02T20:56:13Z")

</div>

> [@Kevin.Herron](#):
>
> Ah, in order for client/designer scoped jars to get loaded you have to run the pack200 tool on the jar first. You'll notice those directories are full of jar.pack.gz files - these are packed jars.

Hi Kevin, i have same problem , write un jar and i need using in designer for ejecute in button, i have compile it and run de pack200 to generare of jar.pack.gz . place file in core/lib/commom also core/lib/designer but no work.

i try witch follow code

def Asterisk():  
from ignitionphone import HelloManager  
originate = HelloManager().run  
call = Asterisk()

send this error

raceback (most recent call last):  
File "", line 5, in   
File "", line 2, in Asterisk  
ImportError: No module named ignitionphone

---

<div class="post-metadata">

**Author:** ![dmdrendall](https://avatars.discourse-cdn.com/v4/letter/d/f9ae1b/32.png) [@dmdrendall](https://forum.inductiveautomation.com/u/dmdrendall)\
**Post date:** [September 14, 2018, 12:04am UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/27 "2018-09-14T00:04:22Z")

</div>

If you’ve used the pack200 utility and placed both the \*.jar and \*.jar.pack.gz files in  
`core/common/`

you still need to restart the gateway and the designer (I believe) before they show up in  
`user/yourusername/.ignition/cache/resources/platform/`

for use by the platform at runtime.

---

<div class="post-metadata">

**Author:** ![dmdrendall](https://avatars.discourse-cdn.com/v4/letter/d/f9ae1b/32.png) [@dmdrendall](https://forum.inductiveautomation.com/u/dmdrendall)\
**Post date:** [September 14, 2018, 12:08am UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/28 "2018-09-14T00:08:48Z")

</div>

Does anyone know where the equivalent location for the above path is for linux OS’s?

(i.e. the `user/yourusername/.ignition/cache/resources/platform/` path)

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [September 14, 2018, 12:16am UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/29 "2018-09-14T00:16:32Z")

</div>

`~/.ignition` or `/home/<username>/.ignition`  
Note that the `.` prefix signifies a file as hidden in Unix OSes, so you usually need to go through some extra step to list hidden files (eg, `ls -a` or Ctrl + H in Ubuntu’s GUI file explorer).

---

<div class="post-metadata">

**Author:** ![dmdrendall](https://avatars.discourse-cdn.com/v4/letter/d/f9ae1b/32.png) [@dmdrendall](https://forum.inductiveautomation.com/u/dmdrendall)\
**Post date:** [September 14, 2018, 2:18am UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/30 "2018-09-14T02:18:58Z")

</div>

Wow, lightning fast and very cogent. Much appreciated Paul. I skimmed around in all the obvious places for a while. That . notation is so key!! My Linuxfoo is much more tight now.

---

<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:30pm UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/31 "2019-03-06T16:30:12Z")

</div>

> [@brandon1](#):
>
> I have been trying to add the Apache POI jar to my gateway using this method, but when I run a button with the following code under it

I am in the same situation right now but with a different third party jar. I have dropped the jar in ignition/lib/core/common, gateway and client folders but my script is unable to see these libraries giving same results that you mentioned. Should I have to restart Ignition server ? I am using windows 10. How did you solve the problem?

---

<div class="post-metadata">

**Author:** ![brandon1](https://avatars.discourse-cdn.com/v4/letter/b/ea666f/32.png) [@brandon1](https://forum.inductiveautomation.com/u/brandon1)\
**Post date:** [March 6, 2019, 6:05pm UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/32 "2019-03-06T18:05:18Z")

</div>

I had to bundle the version of POI (3.14) in my module to match what is being used by the reporting module.  
If you know what the version is in the Client/Designer scope you should be able to do the same thing.

---

<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, 6:09pm UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/33 "2019-03-06T18:09:27Z")

</div>

My module is new and its not used in Ignition gateway or server scope. So the question of matching the versions doesn't exist for me I guess.

---

<div class="post-metadata">

**Author:** ![Dawid\_Fulczynski](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dawid_fulczynski/32/12308_2.png) [@Dawid\_Fulczynski](https://forum.inductiveautomation.com/u/Dawid_Fulczynski)\
**Post date:** [January 20, 2023, 7:15pm UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/34 "2023-01-20T19:15:03Z")

</div>

Hello,  
I need pdfbox-app-2.0.27.jar to provide silent pdf printing from client scope (generate few pdfs by system.report.executeReport and print it at once with print job.

I add jar file to folders Ignition\lib\core\Clinet , Ignition\lib\core\Designer, Ignition\lib\core\Common  
I`m able to add module for designer scope. It automatically download module at designer startup, and I can execute script in designer.

What I have to makes library available in client scope ?  
Probably I need to provoke Ignition to add this library to lunch manifest system/launchmf/C?os=windwos&arch=x64

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [January 20, 2023, 7:41pm UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/35 "2023-01-20T19:41:39Z")

</div>

I don't know what pdfbox is actually getting you, if you're just using reports from `system.report.executeReport`, but putting it in _either_ `lib/core/common` or `lib/core/client` should be sufficient. If you're on 7.9, you'll have to `pack200` the .jar file, I believe, but that requirement is nixed in 8.0+

---

<div class="post-metadata">

**Author:** ![Dawid\_Fulczynski](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dawid_fulczynski/32/12308_2.png) [@Dawid\_Fulczynski](https://forum.inductiveautomation.com/u/Dawid_Fulczynski)\
**Post date:** [January 20, 2023, 7:49pm UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/36 "2023-01-20T19:49:09Z")

</div>

I use 8.1.22,  
Here is server site files:

 ![obraz](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/0/303cdce457f79e94d905443cc41fe2c52540d582.png)

Manifest for client:

```auto
<launch scope="C" framework="7" jreVersion="11.0.16.1" useCondensedDialogFont="false">
<style id="stylish-4" class="stylish" type="text/css">
.header{ color: rgba(67, 131, 175, 0.48) !important; } .section.entry{ transition: none !important; } .section.link-block > section > article section.info { color:#e6e6e7bf !important;; }
</style>
<module name="" build="2022110109">
<jar name="synthetica-addons-3.4.1.jar" crc="677F89ED" length="266776"/>
<jar name="miglayout-core-4.2.jar" crc="FEECEF57" length="66663"/>
<jar name="timingframework-1.0.jar" crc="7832C4C0" length="102616"/>
<jar name="commons-collections4-4.4.jar" crc="6847F0D3" length="751914"/>
<jar name="common.jar" crc="B1BD0AD9" length="3831690"/>
<jar name="jul-to-slf4j-1.7.26.jar" crc="BF2AD0D0" length="4589"/>
<jar name="commons-lang3-3.11.jar" crc="4FD4C07C" length="577742"/>
<jar name="xmlgraphics-commons-2.3.jar" crc="CAE5A1BA" length="671727"/>
<jar name="poi-ooxml-4.1.1.jar" crc="5C3A1400" length="1859884"/>
<jar name="bcprov-jdk15on-1.69.jar" crc="A76F4870" length="5743920"/>
<jar name="bcutil-jdk15on-1.69.jar" crc="76A0656E" length="359496"/>
<jar name="jxbrowser-swing-7.12.1.jar" crc="A75EF1E7" length="141749"/>
<jar name="swingx-0.0.3-ia.jar" crc="65E602E1" length="1512564"/>
<jar name="cron4j-2.2.5.jar" crc="FFAC5F7B" length="36227"/>
<jar name="curvesapi-1.06.jar" crc="D1B9BE33" length="111875"/>
<jar name="slf4j-api-1.7.26.jar" crc="A71DAC84" length="41139"/>
<jar name="jydocking-3.4.1.jar" crc="5EC6B4CE" length="281641"/>
<jar name="jgrapht-core-1.4.0.jar" crc="AB8E765E" length="1091677"/>
<jar name="kotlin-stdlib-jdk8-1.5.31.jar" crc="BC25B1B7" length="16121"/>
<jar name="commons-compress-1.19.jar" crc="19AE5191" length="615064"/>
<jar name="ia-gson-2.8.5.jar" crc="7F980716" length="261492"/>
<jar name="kotlin-stdlib-common-1.5.31.jar" crc="4DB332A5" length="198322"/>
<jar name="forms-1.0.7.jar" crc="5E8CB029" length="86828"/>
<jar name="poi-ooxml-schemas-4.1.1.jar" crc="8F7A32A" length="7884238"/>
<jar name="bcpkix-jdk15on-1.69.jar" crc="15FDAC12" length="909020"/>
<jar name="batik-swing-1.12.jar" crc="B83D4C3E" length="190772"/>
<jar name="jide-common-3.7.4.jar" crc="DC3DB1B" length="1632900"/>
<jar name="log4j-over-slf4j-1.7.26.jar" crc="5296FF81" length="23650"/>
<jar name="joda-time-2.10.2.jar" crc="EE76ABA0" length="642711"/>
<jar name="kotlinx-coroutines-core-jvm-1.5.2.jar" crc="1FB63442" length="1481065"/>
<jar name="batik-awt-util-1.12.jar" crc="4CEB277F" length="422448"/>
<jar name="batik-util-1.12.jar" crc="F09002E9" length="127209"/>
<jar name="imageio-core-3.8.3.jar" crc="68C6211F" length="92987"/>
<jar name="logback-classic-1.2.3.jar" crc="6407A406" length="290339"/>
<jar name="jytable-3.4.1.jar" crc="AEC20C93" length="168130"/>
<jar name="client-api-8.1.22.jar" crc="12D9E9E3" length="3180673"/>
<jar name="kotlinx-coroutines-swing-1.5.2.jar" crc="DDF67DE4" length="9331"/>
<jar name="batik-script-1.12.jar" crc="73865109" length="25715"/>
<jar name="commons-codec-1.13.jar" crc="1F1614BB" length="344339"/>
<jar name="commons-math3-3.6.1.jar" crc="5D5A24E1" length="2213560"/>
<jar name="batik-bridge-1.12.jar" crc="7F6DB498" length="695968"/>
<jar name="common-io-3.8.3.jar" crc="53A1F0AD" length="89993"/>
<jar name="java-cup-10k.jar" crc="3FCB2D3D" length="84156"/>
<jar name="synthetica-3.4.2-beta1.jar" crc="4E398ECC" length="621708"/>
<jar name="commons-logging-1.2.jar" crc="3621FD43" length="61829"/>
<jar name="guava-26.0-jre.jar" crc="47C422DD" length="2740721"/>
<jar name="batik-gvt-1.12.jar" crc="83F7136" length="191437"/>
<jar name="active-query-builder-8.1.22.jar" crc="655CC3E6" length="2641511"/>
<jar name="commons-text-1.9.jar" crc="89FA2468" length="216211"/>
<jar name="jxbrowser-7.12.1.jar" crc="8B8D0FBE" length="9877025"/>
<jar name="poi-4.1.1.jar" crc="5964EDEF" length="2827712"/>
<jar name="batik-css-1.12.jar" crc="CD9AE2F4" length="325399"/>
<jar name="batik-dom-1.12.jar" crc="E51605CA" length="182590"/>
<jar name="jose4j-0.7.12.jar" crc="97E622F1" length="277563"/>
<jar name="batik-xml-1.12.jar" crc="10A9F179" length="33497"/>
<jar name="kotlin-stdlib-1.5.31.jar" crc="8C0FD528" length="1505952"/>
<jar name="kotlin-stdlib-jdk7-1.5.31.jar" crc="CDCCB4BF" length="22986"/>
<jar name="core-java6-3.2.1.4.jar" crc="B87C35C4" length="543804"/>
<jar name="jfreechart-min-1.0.0.jar" crc="DC0AEE96" length="1636824"/>
<jar name="httpcore-4.4.13.jar" crc="2FCEAFE7" length="328593"/>
<jar name="httpclient-4.5.13.jar" crc="EC26836C" length="780321"/>
<jar name="miglayout-swing-4.2.jar" crc="DA98AC37" length="14580"/>
<jar name="jyiconfonts-3.4.1.jar" crc="17C9D3E3" length="1141225"/>
<jar name="ignition-laf-3.1.0-beta13.jar" crc="EF05BC26" length="406791"/>
<jar name="jheaps-0.11.jar" crc="67F79D2" length="133503"/>
<jar name="commons-io-2.2.jar" crc="11E1D2AE" length="173587"/>
<jar name="barcode4j-2.1.jar" crc="B907C79" length="274404"/>
<jar name="common-lang-3.8.3.jar" crc="89DBCA67" length="119561"/>
<jar name="annotations-13.0.jar" crc="E6DD8E33" length="17536"/>
<jar name="xml-apis-1.3.04.jar" crc="9F219AB6" length="194354"/>
<jar name="logback-core-1.2.3.jar" crc="D9BC8F47" length="471901"/>
<jar name="xml-apis-ext-1.3.04.jar" crc="87389C28" length="85686"/>
<jar name="batik-transcoder-1.12.jar" crc="169E104E" length="128581"/>
<jar name="batik-constants-1.12.jar" crc="188FD9CD" length="8271"/>
<jar name="client-bootstrap-8.1.22.jar" crc="25FFFD63" length="2861395"/>
<jar name="jide-plaf-9-0.0.1.jar" crc="83F57046" length="195573"/>
<jar name="jython-ia-2.7.2.1.jar" crc="A5AE7F4C" length="33892008"/>
<jar name="batik-parser-1.12.jar" crc="B8AD1229" length="76504"/>
<jar name="batik-svg-dom-1.12.jar" crc="2502C887" length="231948"/>
<jar name="imageio-batik-3.8.3.jar" crc="81082F3F" length="22007"/>
<jar name="batik-svggen-1.12.jar" crc="E2CD27B5" length="224908"/>
<jar name="jide-grids-3.7.4.jar" crc="141BFEB0" length="2322572"/>
<jar name="batik-ext-1.12.jar" crc="D8C7ED74" length="10075"/>
<jar name="commons-cli-1.4.jar" crc="57B55D77" length="53820"/>
<jar name="batik-i18n-1.12.jar" crc="ECB4E1A" length="11263"/>
<jar name="jide-components-3.7.4.jar" crc="FD5B5C01" length="403617"/>
<jar name="xmlbeans-3.1.0.jar" crc="87DB6FAA" length="2579738"/>
<jar name="xalan-2.7.2.jar" crc="8C752A59" length="3154938"/>
<jar name="jywidgets-3.4.1.jar" crc="4C211D0A" length="494288"/>
<jar name="batik-anim-1.12.jar" crc="BEF50792" length="479193"/>
<jar name="common-image-3.8.3.jar" crc="559BE622" length="85550"/>
<jar name="serializer-2.7.2.jar" crc="EC00A0FF" length="276420"/>
<jar name="launchclient.jar" crc="67202DAC" length="3526693"/>
<jar name="metrics-core-4.2.0.jar" crc="EDDA5463" length="125973"/>
</module>
<module name="webservicegateway" build="2022110119">
<jar name=" __2202128843__ WSClient.jar" crc="CA2D0D84" length="1572"/>
<jar name=" __2202128843__ saaj-api-1.3.5.jar" crc="E4AE97C4" length="25423"/>
<jar name=" __2202128843__ WSCommon.jar" crc="3EB907A5" length="169007"/>
</module>
<module name="com.inductiveautomation.vision" build="2022110109">
<jar name=" __2480421306__ vision-client-11.1.22.jar" crc="345D1BED" length="3181382"/>
<jar name=" __2480421306__ vision-common-11.1.22.jar" crc="254CA6E5" length="13389"/>
</module>
<module name="com.inductiveautomation.opcua" build="2022110109">
<jar name=" __3963746373__ opc-ua-common-9.1.22.jar" crc="C320909D" length="2072"/>
<jar name=" __3963746373__ opc-ua-client-9.1.22.jar" crc="2D100864" length="5603"/>
</module>
<module name="com.inductiveautomation.sqlbridge" build="2022110109">
<jar name=" __83976294__ sql-bridge-common-10.1.22.jar" crc="24CAC09" length="114159"/>
</module>
<module name="com.inductiveautomation.reporting" build="2022110109">
<jar name=" __3580320535__ reporting-client-6.1.22.jar" crc="AF212624" length="2775894"/>
<jar name=" __3580320535__ poi-3.14.jar" crc="107E735E" length="2528204"/>
<jar name=" __3580320535__ bcprov-ext-jdk15on-1.69.jar" crc="4E8CAC61" length="5814235"/>
<jar name=" __3580320535__ icepdf-viewer-6.3.2.jar" crc="9D046453" length="1232244"/>
<jar name=" __3580320535__ reporting-common-6.1.22.jar" crc="CA42732D" length="3531999"/>
<jar name=" __3580320535__ icepdf-core-6.3.2.jar" crc="C56894E2" length="1440836"/>
</module>
<thirdPartyModules md5="65edd3b610d5fdc320147e15829b35ed"/>
<connect usessl="false" port="8088"/>
</launch>

```

Manifest for designer (pdfbox appear here)

```auto
<launch scope="D" framework="7" jreVersion="11.0.16.1" useCondensedDialogFont="false">
<style id="stylish-4" class="stylish" type="text/css">
.header{ color: rgba(67, 131, 175, 0.48) !important; } .section.entry{ transition: none !important; } .section.link-block > section > article section.info { color:#e6e6e7bf !important;; }
</style>
<module name="" build="2022110109">
<jar name="jide-shortcut-3.7.4.jar" crc="69D867D1" length="80404"/>
<jar name="synthetica-addons-3.4.1.jar" crc="677F89ED" length="266776"/>
<jar name="jide-dock-3.7.4.jar" crc="5A8E7A8" length="383828"/>
<jar name="miglayout-core-4.2.jar" crc="FEECEF57" length="66663"/>
<jar name="timingframework-1.0.jar" crc="7832C4C0" length="102616"/>
<jar name="commons-collections4-4.4.jar" crc="6847F0D3" length="751914"/>
<jar name="common.jar" crc="B1BD0AD9" length="3831690"/>
<jar name="jul-to-slf4j-1.7.26.jar" crc="BF2AD0D0" length="4589"/>
<jar name="commons-lang3-3.11.jar" crc="4FD4C07C" length="577742"/>
<jar name="xmlgraphics-commons-2.3.jar" crc="CAE5A1BA" length="671727"/>
<jar name="poi-ooxml-4.1.1.jar" crc="5C3A1400" length="1859884"/>
<jar name="rhino-1.7.6.jar" crc="7D1D24AD" length="1188593"/>
<jar name="bcprov-jdk15on-1.69.jar" crc="A76F4870" length="5743920"/>
<jar name="bcutil-jdk15on-1.69.jar" crc="76A0656E" length="359496"/>
<jar name="jxbrowser-swing-7.12.1.jar" crc="A75EF1E7" length="141749"/>
<jar name="swingx-0.0.3-ia.jar" crc="65E602E1" length="1512564"/>
<jar name="cron4j-2.2.5.jar" crc="FFAC5F7B" length="36227"/>
<jar name="designer-8.1.22.jar" crc="5755E722" length="13621862"/>
<jar name="curvesapi-1.06.jar" crc="D1B9BE33" length="111875"/>
<jar name="slf4j-api-1.7.26.jar" crc="A71DAC84" length="41139"/>
<jar name="jydocking-3.4.1.jar" crc="5EC6B4CE" length="281641"/>
<jar name="jgrapht-core-1.4.0.jar" crc="AB8E765E" length="1091677"/>
<jar name="kotlin-stdlib-jdk8-1.5.31.jar" crc="BC25B1B7" length="16121"/>
<jar name="commons-compress-1.19.jar" crc="19AE5191" length="615064"/>
<jar name="ia-gson-2.8.5.jar" crc="7F980716" length="261492"/>
<jar name="kotlin-stdlib-common-1.5.31.jar" crc="4DB332A5" length="198322"/>
<jar name="forms-1.0.7.jar" crc="5E8CB029" length="86828"/>
<jar name="poi-ooxml-schemas-4.1.1.jar" crc="8F7A32A" length="7884238"/>
<jar name="bcpkix-jdk15on-1.69.jar" crc="15FDAC12" length="909020"/>
<jar name="batik-swing-1.12.jar" crc="B83D4C3E" length="190772"/>
<jar name="jide-common-3.7.4.jar" crc="DC3DB1B" length="1632900"/>
<jar name="log4j-over-slf4j-1.7.26.jar" crc="5296FF81" length="23650"/>
<jar name="joda-time-2.10.2.jar" crc="EE76ABA0" length="642711"/>
<jar name="kotlinx-coroutines-core-jvm-1.5.2.jar" crc="1FB63442" length="1481065"/>
<jar name="batik-awt-util-1.12.jar" crc="4CEB277F" length="422448"/>
<jar name="batik-util-1.12.jar" crc="F09002E9" length="127209"/>
<jar name="imageio-core-3.8.3.jar" crc="68C6211F" length="92987"/>
<jar name="logback-classic-1.2.3.jar" crc="6407A406" length="290339"/>
<jar name="autocomplete-3.2.0.jar" crc="F24C7053" length="154205"/>
<jar name="jytable-3.4.1.jar" crc="AEC20C93" length="168130"/>
<jar name="client-api-8.1.22.jar" crc="12D9E9E3" length="3180673"/>
<jar name="kotlinx-coroutines-swing-1.5.2.jar" crc="DDF67DE4" length="9331"/>
<jar name="rsyntaxtextarea-3.2.0.jar" crc="2F8C0BFE" length="1248250"/>
<jar name="batik-script-1.12.jar" crc="73865109" length="25715"/>
<jar name="commons-codec-1.13.jar" crc="1F1614BB" length="344339"/>
<jar name="commons-math3-3.6.1.jar" crc="5D5A24E1" length="2213560"/>
<jar name="batik-bridge-1.12.jar" crc="7F6DB498" length="695968"/>
<jar name="common-io-3.8.3.jar" crc="53A1F0AD" length="89993"/>
<jar name="java-cup-10k.jar" crc="3FCB2D3D" length="84156"/>
<jar name="rstaui-3.2.0.jar" crc="F94283C0" length="121343"/>
<jar name="jide-dialogs-3.7.4.jar" crc="73B908E3" length="60097"/>
<jar name="synthetica-3.4.2-beta1.jar" crc="4E398ECC" length="621708"/>
<jar name="commons-logging-1.2.jar" crc="3621FD43" length="61829"/>
<jar name="guava-26.0-jre.jar" crc="47C422DD" length="2740721"/>
<jar name="batik-gvt-1.12.jar" crc="83F7136" length="191437"/>
<jar name="active-query-builder-8.1.22.jar" crc="655CC3E6" length="2641511"/>
<jar name="commons-text-1.9.jar" crc="89FA2468" length="216211"/>
<jar name="jxbrowser-7.12.1.jar" crc="8B8D0FBE" length="9877025"/>
<jar name="poi-4.1.1.jar" crc="5964EDEF" length="2827712"/>
<jar name="batik-css-1.12.jar" crc="CD9AE2F4" length="325399"/>
<jar name="batik-dom-1.12.jar" crc="E51605CA" length="182590"/>
<jar name="jose4j-0.7.12.jar" crc="97E622F1" length="277563"/>
<jar name="batik-xml-1.12.jar" crc="10A9F179" length="33497"/>
<jar name="kotlin-stdlib-1.5.31.jar" crc="8C0FD528" length="1505952"/>
<jar name="kotlin-stdlib-jdk7-1.5.31.jar" crc="CDCCB4BF" length="22986"/>
<jar name="languagesupport-3.1.4.jar" crc="51FCE7E9" length="1132674"/>
<jar name="core-java6-3.2.1.4.jar" crc="B87C35C4" length="543804"/>
<jar name="jfreechart-min-1.0.0.jar" crc="DC0AEE96" length="1636824"/>
<jar name="httpcore-4.4.13.jar" crc="2FCEAFE7" length="328593"/>
<jar name="httpclient-4.5.13.jar" crc="EC26836C" length="780321"/>
<jar name="miglayout-swing-4.2.jar" crc="DA98AC37" length="14580"/>
<jar name="jyiconfonts-3.4.1.jar" crc="17C9D3E3" length="1141225"/>
<jar name="ignition-laf-3.1.0-beta13.jar" crc="EF05BC26" length="406791"/>
<jar name="jheaps-0.11.jar" crc="67F79D2" length="133503"/>
<jar name="commons-io-2.2.jar" crc="11E1D2AE" length="173587"/>
<jar name="barcode4j-2.1.jar" crc="B907C79" length="274404"/>
<jar name="common-lang-3.8.3.jar" crc="89DBCA67" length="119561"/>
<jar name="annotations-13.0.jar" crc="E6DD8E33" length="17536"/>
<jar name="xml-apis-1.3.04.jar" crc="9F219AB6" length="194354"/>
<jar name="jide-action-3.7.4.jar" crc="4EBE9458" length="228645"/>
<jar name="logback-core-1.2.3.jar" crc="D9BC8F47" length="471901"/>
<jar name="xml-apis-ext-1.3.04.jar" crc="87389C28" length="85686"/>
<jar name="batik-transcoder-1.12.jar" crc="169E104E" length="128581"/>
<jar name="batik-constants-1.12.jar" crc="188FD9CD" length="8271"/>
<jar name="client-bootstrap-8.1.22.jar" crc="25FFFD63" length="2861395"/>
<jar name="jide-plaf-9-0.0.1.jar" crc="83F57046" length="195573"/>
<jar name="jython-ia-2.7.2.1.jar" crc="A5AE7F4C" length="33892008"/>
<jar name="jide-diff-3.7.4.jar" crc="52C25AB0" length="154533"/>
<jar name="batik-parser-1.12.jar" crc="B8AD1229" length="76504"/>
<jar name="batik-svg-dom-1.12.jar" crc="2502C887" length="231948"/>
<jar name="imageio-batik-3.8.3.jar" crc="81082F3F" length="22007"/>
<jar name="batik-svggen-1.12.jar" crc="E2CD27B5" length="224908"/>
<jar name="jide-grids-3.7.4.jar" crc="141BFEB0" length="2322572"/>
<jar name="batik-ext-1.12.jar" crc="D8C7ED74" length="10075"/>
<jar name="commons-cli-1.4.jar" crc="57B55D77" length="53820"/>
<jar name="batik-i18n-1.12.jar" crc="ECB4E1A" length="11263"/>
<jar name="jide-components-3.7.4.jar" crc="FD5B5C01" length="403617"/>
<jar name="xmlbeans-3.1.0.jar" crc="87DB6FAA" length="2579738"/>
<jar name="pdfbox-app-2.0.27.jar" crc="14BDC82D" length="10083036"/>
<jar name="xalan-2.7.2.jar" crc="8C752A59" length="3154938"/>
<jar name="jywidgets-3.4.1.jar" crc="4C211D0A" length="494288"/>
<jar name="batik-anim-1.12.jar" crc="BEF50792" length="479193"/>
<jar name="common-image-3.8.3.jar" crc="559BE622" length="85550"/>
<jar name="jide-editor-3.7.4.jar" crc="5C2C00A9" length="471792"/>
<jar name="serializer-2.7.2.jar" crc="EC00A0FF" length="276420"/>
<jar name="launchclient.jar" crc="67202DAC" length="3526693"/>
<jar name="metrics-core-4.2.0.jar" crc="EDDA5463" length="125973"/>
</module>
<module name="webservicegateway" build="2022110119">
<jar name=" __2202128843__ WSClient.jar" crc="CA2D0D84" length="1572"/>
<jar name=" __2202128843__ MESIgnition8Interface.jar" crc="1564BA1F" length="74436"/>
<jar name=" __2202128843__ WSDesigner.jar" crc="E96B976" length="336784"/>
<jar name=" __2202128843__ saaj-api-1.3.5.jar" crc="E4AE97C4" length="25423"/>
<jar name=" __2202128843__ WSCommon.jar" crc="3EB907A5" length="169007"/>
</module>
<module name="com.inductiveautomation.symbol-factory" build="2022110109">
<jar name=" __1374485595__ vision-symbol-factory-7.1.22.jar" crc="7A73EF79" length="35496398"/>
</module>
<module name="com.inductiveautomation.vision" build="2022110109">
<jar name=" __2480421306__ vision-client-11.1.22.jar" crc="345D1BED" length="3181382"/>
<jar name=" __2480421306__ vision-common-11.1.22.jar" crc="254CA6E5" length="13389"/>
<jar name=" __2480421306__ vision-designer-11.1.22.jar" crc="437DCE5C" length="2930676"/>
</module>
<module name="com.inductiveautomation.opcua" build="2022110109">
<jar name=" __3963746373__ opc-ua-common-9.1.22.jar" crc="C320909D" length="2072"/>
<jar name=" __3963746373__ opc-ua-client-9.1.22.jar" crc="2D100864" length="5603"/>
</module>
<module name="com.inductiveautomation.sqlbridge" build="2022110109">
<jar name=" __83976294__ sql-bridge-designer-10.1.22.jar" crc="8852DC55" length="891321"/>
<jar name=" __83976294__ sql-bridge-common-10.1.22.jar" crc="24CAC09" length="114159"/>
</module>
<module name="com.inductiveautomation.perspective" build="2022110109">
<jar name=" __2951818946__ perspective-designer-2.1.22.jar" crc="F05151D0" length="2326334"/>
<jar name=" __2951818946__ perspective-common-2.1.22.jar" crc="5E56918" length="366381"/>
</module>
<module name="com.inductiveautomation.reporting" build="2022110109">
<jar name=" __3580320535__ reporting-client-6.1.22.jar" crc="AF212624" length="2775894"/>
<jar name=" __3580320535__ poi-3.14.jar" crc="107E735E" length="2528204"/>
<jar name=" __3580320535__ bcprov-ext-jdk15on-1.69.jar" crc="4E8CAC61" length="5814235"/>
<jar name=" __3580320535__ reporting-designer-6.1.22.jar" crc="A78F4198" length="938844"/>
<jar name=" __3580320535__ icepdf-viewer-6.3.2.jar" crc="9D046453" length="1232244"/>
<jar name=" __3580320535__ reporting-common-6.1.22.jar" crc="CA42732D" length="3531999"/>
<jar name=" __3580320535__ icepdf-core-6.3.2.jar" crc="C56894E2" length="1440836"/>
</module>
<thirdPartyModules md5="65edd3b610d5fdc320147e15829b35ed"/>
<connect usessl="false" port="8088"/>
</launch>

```

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [January 20, 2023, 8:00pm UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/37 "2023-01-20T20:00:15Z")

</div>

Have you restarted the gateway since installing the jar? It should be delivered in client scope 🤷‍♂️

This whole approach is not supported, as mentioned above. The way to ensure this works is to use a custom module.

---

<div class="post-metadata">

**Author:** ![Dawid\_Fulczynski](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dawid_fulczynski/32/12308_2.png) [@Dawid\_Fulczynski](https://forum.inductiveautomation.com/u/Dawid_Fulczynski)\
**Post date:** [January 20, 2023, 8:04pm UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/38 "2023-01-20T20:04:13Z")

</div>

Yes, I do restart after placing the files into lib/core/\* folders.

So challenge accepted, I going to create custom module 😉

---

<div class="post-metadata">

**Author:** ![John\_John](https://avatars.discourse-cdn.com/v4/letter/j/8797f3/32.png) [@John\_John](https://forum.inductiveautomation.com/u/John_John)\
**Post date:** [September 27, 2023, 10:18am UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/39 "2023-09-27T10:18:25Z")

</div>

I have added the pdfbox.jar in client, common and gateway folder. But getting error as "No module named pdfbox". Will it work if we add only the jar file? What do you mean by create custom module?

---

<div class="post-metadata">

**Author:** ![Dawid\_Fulczynski](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dawid_fulczynski/32/12308_2.png) [@Dawid\_Fulczynski](https://forum.inductiveautomation.com/u/Dawid_Fulczynski)\
**Post date:** [September 27, 2023, 11:04am UTC](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202/40 "2023-09-27T11:04:19Z")

</div>

It not working. You have to build module using API and IntelliJ IDEA.  
I do it like that, and it works.

[Previous page](https://forum.inductiveautomation.com/t/adding-java-custom-classes-to-ignition/15202.md?page=1)
