# Serial library not found - Processing 4.4.8

**URL:** https://discourse.processing.org/t/serial-library-not-found-processing-4-4-8/47302
**Category:** Libraries
**Created:** [October 8, 2025, 9:08pm UTC](https://discourse.processing.org/t/serial-library-not-found-processing-4-4-8/47302 "2025-10-08T21:08:03Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![Kittycannon](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/kittycannon/32/21159_2.png) [@Kittycannon](https://discourse.processing.org/u/Kittycannon)
#### Post date: [October 8, 2025, 9:08pm UTC](https://discourse.processing.org/t/serial-library-not-found-processing-4-4-8/47302/1 "2025-10-08T21:08:03Z")

</div>

So, where’s the Serial library? I feel like I’m crazy.

When I download Processing and then install it, there’s no Serial library available.

So I though I had to install it, but it doesn’t appear on the included manager. There’s no information online, and I can’t find a .jar.

It still appears on the github, but again, no separate jar, so I assume the intention is for it to be built in.

It still appears when searched on the processing reference, but there’s no mention of how to download it or if it’s been removed. It appears as if it’s part of the ‘core’ Processing, but it doesn’t appear on the main page.

 ![imagen](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/e/3/e3eacd88b29c06d43aead172b04cad7cbfcc01bd.png)

---

<div class="post-metadata">

### Author: ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)
#### Post date: [October 8, 2025, 10:06pm UTC](https://discourse.processing.org/t/serial-library-not-found-processing-4-4-8/47302/2 "2025-10-08T22:06:47Z")

</div>

\*\*\* UPDATE \*\*\*

> [@Serial library not found - Processing 4.4.8](http://discourse.processing.org/t/serial-library-not-found-processing-4-4-8/47302/9):
>
> Processing 4.4.10 corrects issues. slight_smile

\*\*\* ORIGINAL POST \*\*\*

Hello @Kittycannon ,

> [@Kittycannon](#):
>
> So, where’s the Serial library? I feel like I’m crazy.

You are not! I can confirm this for the zip install. `:)`

My environment:

- W10
- A manual install of Processing from the portable zip file so I have the last version available to fall back to if required.
- Rename the Processing install folder and add the version number to the folder name.

The _serial.jar_ is missing from Processing 4.4.8:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/8/8/88a3e448a0973a94476c60c4f7aa8e04edcdb554.png)

The _serial.jar_ is available with Processing 4.4.7:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/5/c/5cf92abff87a3a87b4a8cbc3fa2ae78c2c2ad1fb.png)

I put the _Serial JARs_ from Processing 4.4.7 in my sketch folder and it worked:  
_[Libraries - Happy Coding](https://happycoding.io/tutorials/processing/libraries)_

It is also missing in examples:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/5/4/54f3e386cc396ea002b1566e797bb4e46034343e.png)

It is also missing in the _Menu Bar_ in _Sketch \> Import Library…_

I also tried to copy the _Serial library_ from Processing 4.4.7 to the _Libraries folder_ in the _Sketchbook Folder_ and that worked. Restart Processing after adding the library.

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/f/6/f60cb972ae4b515a29e04a080177395da4e9b672.png)

> [@Kittycannon](#):
>
> It still appears on the github, but again, no separate jar, so I assume the intention is for it to be built in.

You can find the JARs and extract them from the zip file:  
_[Releases · processing/processing4 · GitHub](https://github.com/processing/processing4/releases)_  
Go to Processing 4.4.7 \> Assets \> Find the _portable zip version_

_ **Workarounds Proceed with Caution !** _

These are _ **workarounds only** _ for Processing 4.4.8 until there is an update and for the serial library issue only.

You may introduce other issues when introducing workarounds.  
This has happened to me in the past!

_ **Proceed with caution and only if you are confident in what you are doing.** _

Experience has helped me navigate issues and find solutions and workarounds.

_The serial library has not changed that I am aware of and can be copied from the last version to replace the missing one._

`:)`

---

<div class="post-metadata">

### Author: ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)
#### Post date: [October 12, 2025, 2:14am UTC](https://discourse.processing.org/t/serial-library-not-found-processing-4-4-8/47302/3 "2025-10-12T02:14:58Z")

</div>

A solution is in the works:

[https://github.com/processing/processing4/issues](https://github.com/processing/processing4/issues) \< Search for _serial_ here.

Thanks @stefterv

`:)`

---

<div class="post-metadata">

### Author: ![Bua](https://avatars.discourse-cdn.com/v4/letter/b/87869e/32.png) [@Bua](https://discourse.processing.org/u/Bua)
#### Post date: [October 13, 2025, 8:32am UTC](https://discourse.processing.org/t/serial-library-not-found-processing-4-4-8/47302/4 "2025-10-13T08:32:05Z")

</div>

Oh Thanks, now these error is clear but a new one is in my window:

The package “javax.xml.bind” does not exist. You might be missing a library.

Is there also an solution for this error?

Thanks

---

<div class="post-metadata">

### Author: ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)
#### Post date: [October 13, 2025, 3:03pm UTC](https://discourse.processing.org/t/serial-library-not-found-processing-4-4-8/47302/5 "2025-10-13T15:03:27Z")

</div>

Hello @Bua,

Welcome!

Please read Guidelines here:  
_[Welcome to the Processing Foundation Discourse](https://discourse.processing.org/t/welcome-to-the-processing-foundation-discourse/8)_

> [@Bua](#):
>
> The package “javax.xml.bind” does not exist. You might be missing a library.

Please include some _minimal code_ to that will generate this error.

Processing 4.4.7 import menu:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/8/f/8ffe14c741417e345f49489889b74b5b9f3c3163.png)

Processing 4.4.8 import menu:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/b/4/b47ae32cb465ea135c39e6d85962696a6f5a59fb.png)

The above suggests that there may be more missing from Processing 4.4.8 than just the Serial Library.

This confirms it:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/2/9/29b7bd321d0c7d458ba2f8650efe85cd561b3322.png)

I am optimistic that there will be an update soon.

Code for above:

```processing
import processing.serial.*;
import processing.pdf.*;
import processing.net.*;
import processing.io.*;
import processing.dxf.*;

void setup()
  {
  }
  
void draw()
  {
  }

```

_Please start another topic if it is not related to the serial library._

`:)`

---

<div class="post-metadata">

### Author: ![Bua](https://avatars.discourse-cdn.com/v4/letter/b/87869e/32.png) [@Bua](https://discourse.processing.org/u/Bua)
#### Post date: [October 13, 2025, 3:25pm UTC](https://discourse.processing.org/t/serial-library-not-found-processing-4-4-8/47302/6 "2025-10-13T15:25:22Z")

</div>

> [@glv](#):
>
> Please include some _minimal code_ to that will generate this error

import [processing.io](http://processing.io).\*;

/\* Copyright 2021 Google LLC. Bose All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the “License”);  
you may not use this file except in compliance with the License.  
You may obtain a copy of the License at

```auto
http://www.apache.org/licenses/LICENSE-2.0

```

# Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an “AS IS” BASIS,  
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
See the License for the specific language governing permissions and  
limitations under the License.

\*/

/\*  
NOTE: To enable quicker prototyping the websocket connection is  
not limited by any authorization systems - please use responsibly  
and implement a more robust authorization infrastructure for any  
sensitive applications containing private data.  
\*/

import processing.serial._;  
import java.nio.ByteBuffer;  
import java.nio.ByteOrder;  
import websockets._;  
import javax.xml.bind.DatatypeConverter;  
import controlP5._;  
import java.util._;

Serial myPort;  
WebsocketServer ws;

// must match resolution used in the sketch  
final int cameraWidth = 96;  
final int cameraHeight = 96;  
final int cameraBytesPerPixel = 1;  
final int bytesPerFrame = cameraWidth \* cameraHeight \* cameraBytesPerPixel;

PImage myImage;  
byte frameBuffer = new byte[bytesPerFrame];  
String portNames;  
ControlP5 cp5;  
ScrollableList portsList;  
boolean clientConnected = false;

void setup()  
{  
size(448, 224);  
pixelDensity(displayDensity());  
frameRate(30);  
cp5 = new ControlP5(this);  
portNames = Serial.list();  
portNames = filteredPorts(portNames);  
ws = new WebsocketServer(this, 8889, “/”);  
portsList = cp5.addScrollableList(“portSelect”)  
.setPosition(235, 10)  
.setSize(200, 220)  
.setBarHeight(40)  
.setItemHeight(40)  
.addItems(portNames);

portsList.close();  
// wait for full frame of bytes  
[//myPort.buffer](https://myPort.buffer)(bytesPerFrame);  
myPort = new Serial(this, “COM19”, 115200);  
//myPort = new Serial(this, “/dev/ttyACM0”, 9600);  
//myPort = new Serial(this, “/dev/cu.usbmodem14201”, 9600);

myImage = createImage(cameraWidth, cameraHeight, RGB);  
noStroke();  
}

void draw()  
{  
background(240);  
image(myImage, 0, 0, 224, 224);

drawConnectionStatus();  
}

void drawConnectionStatus() {  
fill(0);  
textAlign(RIGHT, CENTER);  
if (!clientConnected) {  
text(“Not Connected to TM”, 410, 100);  
fill(255, 0, 0);  
} else {  
text(“Connected to TM”, 410, 100);  
fill(0, 255, 0);  
}  
ellipse(430, 102, 10, 10);  
}  
void portSelect(int n) {  
String selectedPortName = (String) cp5.get(ScrollableList.class, “portSelect”).getItem(n).get(“text”);

try {  
myPort = new Serial(this, selectedPortName, 115200);  
myPort.buffer(bytesPerFrame);  
}  
catch (Exception e) {  
println(e);  
}  
}

boolean stringFilter(String s) {  
return (!s.startsWith(“/dev/tty”));  
}  
int lastFrame = -1;  
String filteredPorts(String ports) {  
int n = 0;  
for (String portName : ports) if (stringFilter(portName)) n++;  
String retArray = new String[n];  
n = 0;  
for (String portName : ports) if (stringFilter(portName)) retArray[n++] = portName;  
return retArray;  
}

void serialEvent(Serial myPort) {  
// read the saw bytes in  
myPort.readBytes(frameBuffer);  
//println(frameBuffer);

// access raw bytes via byte buffer  
ByteBuffer bb = ByteBuffer.wrap(frameBuffer);  
bb.order(ByteOrder.BIG\_ENDIAN);  
int i = 0;

while (bb.hasRemaining()) {  
//0xFF & to treat byte as unsigned.  
int r = (int) (bb.get() & 0xFF);  
myImage.pixels[i] = color(r, r, r);  
i++;  
//println(“adding pixels”);  
}  
if (lastFrame == -1) {  
lastFrame = millis();  
}  
else {  
int frameTime = millis() - lastFrame;  
print("fps: ");  
println(frameTime);  
lastFrame = millis();  
}

myImage.updatePixels();  
myPort.clear();  
String data = DatatypeConverter.printBase64Binary(frameBuffer);  
ws.sendMessage(data);  
}

void webSocketServerEvent(String msg) {  
if (msg.equals(“tm-connected”)) clientConnected = true;  
}

---

<div class="post-metadata">

### Author: ![Kittycannon](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/kittycannon/32/21159_2.png) [@Kittycannon](https://discourse.processing.org/u/Kittycannon)
#### Post date: [October 13, 2025, 7:29pm UTC](https://discourse.processing.org/t/serial-library-not-found-processing-4-4-8/47302/7 "2025-10-13T19:29:08Z")

</div>

**TL; DR, and for people looking for a solution: Downgrade to 4.4.7**

Thank you so much everyone and specially you @glv.

Downgrading to 4.4.7 solved the issue, and I have not found any other.

Maybe they forgot to add the library in the final build of 4.4.8?

It’s the first time I found a live bug, and haha it took me by surprise.

Cheers.

---

<div class="post-metadata">

### Author: ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)
#### Post date: [October 13, 2025, 8:27pm UTC](https://discourse.processing.org/t/serial-library-not-found-processing-4-4-8/47302/8 "2025-10-13T20:27:16Z")

</div>

> [@Kittycannon](#):
>
> Downgrading to 4.4.7 solved the issue, and I have not found any other.

Hello again!

I always do a manual install from the _portable.zip_ version and rename the folders:

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/processingfoundation1/original/3X/b/1/b1646609b0c09c1b9c8d68c4e56a06f980eec8bf.png)

I always have the last working version to work with if there are issues.

`:)`

---

<div class="post-metadata">

### Author: ![glv](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.processing.org/glv/32/18785_2.png) [@glv](https://discourse.processing.org/u/glv)
#### Post date: [October 20, 2025, 2:10pm UTC](https://discourse.processing.org/t/serial-library-not-found-processing-4-4-8/47302/9 "2025-10-20T14:10:56Z")

</div>

> [@glv](#):
>
> These are _ **workarounds only** _ for Processing 4.4.8 until there is an update and for the serial library issue only.

Processing 4.4.10 corrects issues.

`:)`
