Привет,
написал простенькую программку на яве, которая получает на вход скомпилированный темплейт, и выплевывает Excel документ. Никаких тебе гуи, чисто консольное приложение.
Все работает.
Только вот попутка запустить под Linux, с неправильно выставленной переменной окружения DISPLAY, программка вываливается по исключению.
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':100' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.access$000(X11GraphicsEnvironment.java:53)
at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:142)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:131)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)
at net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:83)
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:174)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:74)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:56)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:143)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:53)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)
at JRLauncher.execute(JRLauncher.java:46)
at JRLauncher.main(JRLauncher.java:143)
Неужели у JasperReports привязка к гуи? А то я тут неделю ковырялся, пробовал, радовался, а тут такое. Потом это все должно будет работать на unix сервере где иксами и не пахнет, а будет ли работать? Что я делаю не так?
Спасибо
А вот программка собственно, я там main фукцию вырезал, там не интересно, она просто парсит параметры и вызывает функцию execute
import java.sql.*;
import oracle.jdbc.driver.*;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.export.*;
import java.util.*;
import org.apache.commons.cli.BasicParser;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.ParseException;
import java.io.*;
public class JRLauncher {
public void execute()
{
HashMap hm = new HashMap();
try {
Connection jdbcConnection = this.connectDB();
System.out.println( "Fill the report..." );
JasperPrint print = JasperFillManager.fillReport( this.jasperreport, hm, jdbcConnection );
System.out.println( "Create a PDF exporter..." );
JRExporter exporter = new JRXlsExporter();
// Configure the exporter (set output file name and print object)
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, this.outputfile);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print );
exporter.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE );
exporter.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE );
System.out.println( "Export the XLS file..." );
exporter.exportReport();
} catch (JRException e) {
e.printStackTrace();
System.exit(1);
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
}
On 12/02/2010 19:54, the_moon wrote:
> Can't connect to X11 window server
http://lmgtfy.com/?q=jasper+Can%27t+connect+to+X11+window+serverPosted via RSDN NNTP Server 2.1 beta
Здравствуйте, ., Вы писали:
.>On 12/02/2010 19:54, the_moon wrote:
>> Can't connect to X11 window server
.>http://lmgtfy.com/?q=jasper+Can%27t+connect+to+X11+window+server
Точно, не пойму, почему я ничего сразу не нашел.
Спасибо