Tre cose:
1 -> elimina la cornice ai frame del codice, penso che l’aspetto del documento sia più semplice e professionale senza riquadri.
2 -> compila con pdflatex e non con latex (passi direttamente dal sorgente al pdf)
3 -> zzzzz ho assemblato un esempio minimo con il tuo codice e non ricevo nessun errore:
`
\documentclass[a4paper,10pt]{book}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[italian]{babel}
\usepackage{listings}
\usepackage{xcolor}
\definecolor{pch}{RGB}{127,0,85} %definizione nuovo colore
\definecolor{comm}{RGB}{63,127,95}
\definecolor{gray}{gray}{0.9}
\definecolor{lgray}{gray}{0.8}
\lstnewenvironment{java}[1][]{\lstset{language=Java,
basicstyle=\footnotesize\ttfamily,
keywordstyle=\color{pch}\bfseries,
commentstyle=\color{comm},
breaklines=true,
showstringspaces=false,
captionpos=b,
aboveskip=1.3em,
xleftmargin=50pt,
xrightmargin=35pt,
%frameshape={yyy}{n}{y}{yyr},
rulecolor=\color{black},
columns=flexible,
numbers=left,
numberstyle=\tiny,
#1}}{} %definizione di un nuovo ambiente per il codice java
\lstnewenvironment{xml}[1][]{\lstset{language=XML,
moredelim=[is][\btHL]{£*}{*£},
basicstyle=\footnotesize\ttfamily,
breaklines=true,
showstringspaces=false,
captionpos=b,
aboveskip=1.3em,
xleftmargin=50pt,
xrightmargin=35pt,
%frameshape={yyy}{n}{y}{yyr},
rulecolor=\color{black},
columns=fullflexible,
numbers=left,
numberstyle=\tiny,
#1}}{} %definizione di un nuovo ambiente per il codice xml
\lstset{language=Java,
basicstyle=\ttfamily,
keywordstyle=\color{pch}\bfseries,
commentstyle=\color{comm},
columns=fullflexible} %per i codici nel testo
\begin{document}
\chapter{dldkejd}
ppopo
\begin{java}[name=main, caption={BBB.java}, label=cod:main]
package it.net;
import net;
/**
* @author
*
*/
public class BBB{
}
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
bb
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
bb
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
bb
b
b
b
b
b
b
bb
b
b
b
b
\end{java}
\end{document}
`
Saluti.
R.