The League One side have secured the experienced James, who played for Bristol City last term.
The player has also thanked Leicester City in the process, as he gets ready for the next chapter in his career
James had been without a club this summer and was allowed to train at Leicester until he found a team.
“It feels great to be given the opportunity to play again and to join a club that’s moving in a direction that everybody’s watching,” James said.
“I’m over the moon, and can’t wait to get started.
“It was a weird process for me, not being in a routine. I was training at Leicester, which I’m thankful for, but to be back inside a men’s environment here with the lads – they’re a fantastic bunch of lads and I’ve loved every minute so far.
“I want to enjoy playing football again, to try to help – be around the group, and whatever the gaffer wants me to do, I’ll do. I want to build up in terms of fitness and game time – and there’s a lot of games coming up, so I want to earn some minutes and move forward from there.”