Seperti yang sudah dikatakan, -cp hanya untuk memberi tahu jvm di baris perintah kelas mana yang akan digunakan untuk utas utama dan di mana ia dapat menemukan perpustakaan (mendefinisikan jalur kelas). Dalam -jar, class-path dan main-class akan ditentukan dalam manifes file jar. Jadi yang lain adalah untuk mendefinisikan hal-hal dalam baris perintah sementara yang lain menemukannya di dalam manifes jar. Tidak ada perbedaan kinerja. Anda tidak dapat menggunakannya secara bersamaan, -jar akan mengganti -cp.
Meskipun Anda menggunakan -cp, itu masih akan memeriksa file manifes. Jadi, Anda dapat menentukan beberapa jalur kelas di manifes dan beberapa di baris perintah. Ini sangat berguna ketika Anda memiliki ketergantungan pada beberapa jar pihak ke-3, yang mungkin tidak Anda sediakan dengan build Anda atau tidak ingin Anda sediakan (berharap itu sudah ditemukan di sistem tempat ia akan diinstal misalnya). Jadi Anda bisa menggunakannya untuk menyediakan stoples eksternal. Lokasinya dapat bervariasi antar sistem atau bahkan mungkin memiliki versi yang berbeda pada sistem yang berbeda (tetapi memiliki antarmuka yang sama). Dengan cara ini Anda dapat membuat aplikasi dengan versi lain dan menambahkan dependensi pihak ketiga yang sebenarnya ke jalur kelas pada baris perintah saat menjalankannya pada sistem yang berbeda.