There's a DSSP implementation in the structure module, called SecStruc. I recommend using the latest BioJava snapshot from github for this code, as there have been some recent bug fixes.
import org.biojava.bio.structure.secstruc.SecStruc;
import org.biojava3.structure.StructureIO;
import org.biojava.bio.structure.Structure;
...
Structure s = StructureIO.getStructure("1BSP");
SecStruc sec = new SecStruc();
sec.assign(s);
for(Group g : sec.getGroups()) {
SecStrucState state = (SecStrucState) g.getProperty("secstruc");
if(state != null) System.out.print(state.getSecStruc().type);
}
System.out.println();
The code is very rough and should be considered 'beta'. There may be a few minor differences to the official DSSP implementation.
In case anyone stumbles across this post, biojava 4.2 officially includes secondary structure prediction and is tested for DSSP compatibility.