Bye J2ME - Hello J2SE Games

Ha ... wie ichs geahnt hatte ...
Hier mal die offizielle Seite : http://www.oracle.com/technetwork/java/javase/compatibility-417013.html

Bereich Sound
Wegen Synthenizer-Implementierungsänderungen sind folgende Features NICHT mehr verfügbar :
GM Soundbank Support
OpenSoundSystem-Support unter Linux

Folglich richtig : Format wird nicht (mehr) unterstützt ... sondern nur noch DLS und SoundFont/SF2 ...

Und jetzt erstmal was google um GM-Soundbank in SoundFont/SF2 zu converten ...

Aber ich hoffe die Info hat erstmal das Problem verdeutlicht. Lösung wird JETZT gesucht.
 
Zuletzt bearbeitet von einem Moderator:
Problem identifiziert...sehr gut!

Schön is folgender Absatz auf der JAVA 7 Website:

->Almost all existing programs should run on Java SE 7 without modification. However, there are some minor potential source and binary incompatibilities in the JRE and JDK that involve rare circumstances and "corner cases"<-

DrunkenJonny AKA Funfair Fella ist also ein "corner case"... kann ich so unterschreiben :)
 
Jaja, die Java-Website...ne ganze Sounapi weglassen gehört zu "minor incompatibilities"...
Habt ihr auch schon irgendwo beim Download der JRE mal den Link "Was ist Java" gesehen?
"Java steuert ihr Auto"...oder so...
 
Ouh man ... wir scheifen grade extrem ab ... von nem simplen Spiel was unter 7 nicht geht weil fast DIE komplette Sound-API rausgeschmissen wurde ... aus welchen Gründen auch immer ... und das für Oracle grade mal als "MINOR CHANGE" abgetan wird ... bis hin zu rechtsradikalen Autos welche durch die abgestumpfe Java7-Version nicht mal mehr nach links können ...

MADE MY DAY
 
Bei mir funktioniert es gar nicht. System: Ubuntu Linux 11.04, 64Bit
Sun/Oracle 6 JRE (32Bit) und Sun/Oracle 6 JDK (64Bit) werfen eine MidiUnavailableException:
Code:
javax.sound.midi.MidiUnavailableException
	at javax.sound.midi.MidiSystem.getDefaultDeviceWrapper(MidiSystem.java:1078)
	at javax.sound.midi.MidiSystem.getSynthesizer(MidiSystem.java:307)
	at jonny_0_5.MusicBox.<init>(MusicBox.java:48)
	at jonny_0_5.Board.preloader(Board.java:85)
	at jonny_0_5.Board.drawTitle(Board.java:402)
	at jonny_0_5.Board.paint(Board.java:101)
	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5124)
	at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:278)
	at javax.swing.RepaintManager.paint(RepaintManager.java:1224)
	at javax.swing.JComponent._paintImmediately(JComponent.java:5072)
	at javax.swing.JComponent.paintImmediately(JComponent.java:4882)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:785)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:713)
	at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:693)
	at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:125)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.IllegalArgumentException: Requested device not installed
	at javax.sound.midi.MidiSystem.getDefaultDevice(MidiSystem.java:1130)
	at javax.sound.midi.MidiSystem.getDefaultDeviceWrapper(MidiSystem.java:1076)
	... 28 more
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at jonny_0_5.MusicBox.setVolume(MusicBox.java:118)
	at jonny_0_5.Board.preloader(Board.java:87)
	at jonny_0_5.Board.drawTitle(Board.java:402)
	at jonny_0_5.Board.paint(Board.java:101)
	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5124)
	at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:278)
	at javax.swing.RepaintManager.paint(RepaintManager.java:1224)
	at javax.swing.JComponent._paintImmediately(JComponent.java:5072)
	at javax.swing.JComponent.paintImmediately(JComponent.java:4882)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:785)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:713)
	at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:693)
	at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:125)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)
	at java.awt.EventQueue.access$000(EventQueue.java:84)
	at java.awt.EventQueue$1.run(EventQueue.java:602)
	at java.awt.EventQueue$1.run(EventQueue.java:600)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

OpenJDK 6 JDK (64Bit) und Oracle JDK 7 (64Bit) werfen die gleiche IOException wie bei SPiKEe, 2. Post ( http://www.tutorials.de/swing-java2d-3d-swt-jface/380156-bye-j2me-hello-j2se-games.html#post1965223 )

Vielleicht wurde dieser Teil der Sound API nicht auf Linux portiert und fällt deswegen wieder heraus, vielleicht war sie noch nicht einmal offizieller Teil der Java API (so wie die Pakete sun.* und com.sun.*).
 
@genode
NOPE
Bei dir ist ein ganz anderes Problem :

Code:
javax.sound.midi.MidiUnavailableException
... more
Caused by: java.lang.IllegalArgumentException: Requested device not installed

Bei dir ist also das Problem das Java noch nicht mal Zugriff auf deine Soundkarte oder deren MIDI-Funktion bekommt ... schon mal als ROOT versucht ?
 
Wozu ein Java-Programm als Root ausführen? - bei einem Spiel noch viel weniger. Es ist kein Rechteproblem, ich habe das Programm mit ausreichend Rechten gestartet, mit denen es auf die Audio-Ausgabe zugreifen kann.
Auch root-Rechte lösen dieses Problem nicht. Die API scheint einfach nicht vorhanden zu sein.
 
Zuletzt bearbeitet:
Hmm ... dann kann dein System halt kein MIDI ...
Aber MIDI war bzw. ist offizieller Bestandteil des Sun/Oracle Java ...
 
Zurück