以下是我的程序(取自headfirst Java):
1
import
javax.sound.midi.*
;
2
3
public
class
MiniMiniMusicApp {
4
public
static
void
main(String[] args) {
5
MiniMiniMusicApp mini =
new
MiniMiniMusicApp();
6
mini.play();
7
}
8
public
void
play() {
9
try
{
10
Sequencer player =
MidiSystem.getSequencer();
11
player.open();
12
13
Sequence seq =
new
Sequence(Sequence.PPQ, 4
);
14
15
Track track =
seq.createTrack();
16
17
ShortMessage a =
new
ShortMessage();
18
a.setMessage(144, 1, 44, 100
);
19
MidiEvent noteOn =
new
MidiEvent(a, 1
);
20
track.add(noteOn);
21
22
ShortMessage b =
new
ShortMessage();
23
b.setMessage(128, 1, 44, 100
);
24
MidiEvent noteOff =
new
MidiEvent(b, 16
);
25
track.add(noteOff);
26
27
player.setSequence(seq);
28
29
player.start();
30
}
catch
(Exception ex) {
31
ex.printStackTrace();
32
}
33
34
}
35
}
在win8.1出现的错误信息如下:
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0
x80000002. Windows RegCreateKeyEx(...) returned error code 5.
解决方法如下:
Step1:搜索并运行regedit.exe
Step2: 进入HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft,右击JavaSoft目录,选择新建->项(key),命名为Prefs
Step3: 重新编译即可。

