JKernelMachines is a java library for learning with kernels. It is primary designed to deal with custom kernels that are not easily found in standard libraries, such as kernels on structured data. These type of kernels are often used in computer vision or bioinformatic applications. We provide several kernels leading to state of the art classification performances in in computer vision, as well as various kernels on sets. Interestingly, the library is meant to be extended with new kernels easily. Standard SVM optimization algorithms are implemented, but also more sophisticated learning-based kernel combination methods such as Multiple Kernel Learning (MKL), and a recently published algorithm to learn powered products of similarities (Product Kernel Learning).