I finally got it working without any errors - but even with calling bcpSetMSSQLHeader() after each table init, nothing is saved in the database and no error occurs:
-----------------------------------
bcp = (net.sourceforge.jtds.jdbc.BCP) java.sql.DriverManager.getConnection ("jdbc:jbcp:sqlserver://myServer:1433/myDB;charset=ISO-8859-1;domain=myDomain");
bcp.bcpInit("table1");
bcp.bcpSetMSSQLHeader();
...
bcp.bcpSendRow(cols);
...
bcp.bcpBatch();
bcp.bcpInit();
...
bcp.bcpSendRow(cols);
...
bcp.bcpBatch();
bcp.bcpDone();
//next table:
bcp.bcpInit("table2");
bcp.bcpSetMSSQLHeader();
...
-------------------------------------
? I guess, I forgot somthing but the poor documentation in the sourceforge Wiki doesn't have much API examples.
See also forum thread "SQL Server "premature end-of-message" error" (https://sourceforge.net/forum/forum.php?thread_id=2057427&forum_id=655876) that evolved to a situation where it works when the table all has nullable columns. But this is unusable for the most cases as usually a table has primary key columns and indices to use them.