[jmsl] score notation printing lilypond linux x11 display variable

jmsl at music.columbia.edu jmsl at music.columbia.edu
Mon May 9 07:02:53 EDT 2005

Hi Hugo,

Linux needs a graphics context to run Java graphics like those done in 
JMSL Score.  As Douglas points out, when you are at a terminal doing it 
yourself, the screen display gives Java the graphics context it 
requires.  When you are running it as a cron job, there is no graphics 
context and your job dies.

There are two solutions:
1) Use PJA Toolkit to provide Java with a graphics context  ( 
http://www.eteks.com/pja/en/ ).  Your java command will require some 
startup paramters like I paste below:
/usr/java/jdk1.3.1_06/bin/java -Xbootclasspath/p:./pja_2.4/lib/pja.jar  
-Duser.home=./pja_2.4 -classpath ./jmsl.jar:./jscore.jar:whateverelse 

The last time I checked, PJA toolkit worked with jdk 1.3x and not 1.4x  
That may have changed.  (what version of java is running on your Linux 

2) Run Java in "headless" mode.  Something like:
java -Djava.awt.headless=true -classpath 
./jmsl.jar:./jscore.jar:whateverelse mypackage.MyClass
Your can learn more about Headless support at Sun: 
Headless support was new to Java 1.4

One of these two approaches should work for you. Let me know how it goes!

Nick Didkovsky

jmsl at music.columbia.edu wrote:

> Now I have a more JMSL - linux question. If I run my JMSL program by 
> hand everything goes well. However if I try to run the same program as 
> a cron task. (I'm using linux) then I get an interesting error:
> starting composition of piece 1115556901770
> creating score...
> Exception in thread "main" java.lang.ExceptionInInitializerError
>         at com.softsynth.jmsl.score.Score.<init>(Score.java:59)
>         at com.softsynth.jmsl.score.Score.<init>(Score.java:113)
>         at com.softsynth.jmsl.score.Score.<init>(Score.java:119)
>         at 
> org.trebol.metaComposer.test02.MusicGenerator.createScore(MusicGenerator.java:43)
>         at 
> org.trebol.metaComposer.test02.MetaComposer.<init>(MetaComposer.java:20)
>         at 
> org.trebol.metaComposer.test02.MetaComposer.main(MetaComposer.java:28)
> Caused by: java.awt.HeadlessException:
> No X11 DISPLAY variable was set, but this program performed an 
> operation which requires it.
>         at 
> java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)
>         at java.awt.Window.<init>(Window.java:310)
>         at java.awt.Frame.<init>(Frame.java:419)
>         at java.awt.Frame.<init>(Frame.java:384)
>         at 
> com.softsynth.jmsl.score.view.NoteDimensionNameSpaceEditor.<init>(NoteDimensionNameSpaceEditor.java:27)
>         at 
> com.softsynth.jmsl.score.SelectionBuffer.<clinit>(SelectionBuffer.java:20)
> I do not know about this X11 DISPLAY variable but I don't know if the 
> solution is in the JMSL part, or in the linux side. Wonder if somebody 
> know the area.
> Well, seem there are a lot of questions. Sorry for that and I would 
> appreciate your help guys as usual.
> Thanks
> Hugo
>jmsl mailing list
>jmsl at music.columbia.edu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://music.columbia.edu/pipermail/jmsl/attachments/20050509/086c8c75/attachment.htm

More information about the jmsl mailing list