匿名さん,補足ありがとうございます(説明サボってごめんなさい).
listings.sty の問題箇所は
\def\lst@maketitle{\@makecaption\lst@title@dropdelim}
\def\lst@title@dropdelim#1{\ignorespaces}
で,article.cls などでの \@makecaption 中の
#1: #2
の「: 」を食べることが意図されているのだと思います.
しかし,jsclasses の \@makecaption の場合,\hskip しか食べてくれなくて 1zw が残ってしまいます.
私は,\lst@title@dropdelim は \lst@maketitle でしか使われていないようだったので,上のように小手先の修正を書きました.
確かに匿名さんの書かれたようにクラスファイル側で対応してしまえば問題はなくなります.
副作用もなさそうでしょうか.