Recursive move files of specific type to a specific path

How about

find ~/my/path -type f -name "*(J)*.foo" -exec mv {} ~/my/path/j \;

The -0 needs to go right after the xargs.

find -type f -name "*(J)*.foo" -print0 | xargs -0 -I{} mv \{\} j/

By the way, posting an error message or other details instead of "no luck" helps diagnose problems.