BCrypt saves the salt into the same column. So it should extract it from there.
I found the source of this issue. The prefixes of the generated strings are different.
You could fix it by replacing the 'y' in the prefix ($2a is the prefix) with an 'a'. Interesting is that PHP accepts the string generated by the Java implementation, but it doesn't work if Java checks the string generated by PHP. So you could be sure that your PHP code will still work if you change the prefix.
Sorry I didn't noticed this issue earlier. I will work on fix for it.