I got the following error in loading JPL with all versions I tested on Windows 7 x64, including SWI-Prolog 6.6.6, 7.1.6, 7.1.8, both of x64 and x86 versions.
ERROR: c:/progra~1/swipl/library/jpl.pl:4668:
'$open_shared_object'/3: The specified module could not be found.
ERROR: Exported procedure jpl:jpl_c_lib_version/1 is not defineAttached is the relevant trace result. It seems to be caused by
load_foreign_library(foreign(jpl), jpl, default(install)). It was failed to find some specified module. In a further trace of this predicates, it promts a windows saying "The program can't start because jvm.dll is missing from your computer...." Although the folder of jvm.dll is within my windows %Path%.
?- trace.
[trace]?- use_module(library(jpl)).
Exit: (48) link_xpce:pcehome_('c:/progra~1/swipl/xpce') ? creep
Exception: (33) shlib:load_foreign_library(foreign(jpl), jpl, default(install)) ? creep
^ Call: (35) notrace(print_message_lines_guarded(current_output, [begin(error, _G1596), '~NERROR: ~w:~d:'-['c:/progra~1/swipl/library/
jpl.pl', 4668], nl, prefix('~N\t'), '~q/~w: '-['$open_shared_object'|...], '~w'-[...], nl|...])) ? creep
ERROR: c:/progra~1/swipl/library/jpl.pl:4668:
'$open_shared_object'/3: The specified module could not be found.^ Exit: (35) notrace(print_message_lines_guarded(current_output, [begin(error, ansi('\033\[0m')), '~NERROR: ~w:~d:'-['c:/progra~1/swipl/library/
jpl.pl', 4668], nl, prefix('~N\t'), '~q/~w: '-['$open_shared_object'|...], '~w'-[...], nl|...])) ? creep
Call: (29) expand_term(end_of_file, 158478-158489, _G1544, _G1545) ? creep
Exit: (29) expand_term(end_of_file, 158478-158489, end_of_file, 158478-158489) ? creep
Call: (31) true ? creep
Exit: (31) true ? creep
^ Call: (30) notrace(print_message_lines_guarded(current_output, [begin(error, _G1573), prefix('~NERROR: '), 'Exported procedure ~q:~q is not defined'-[jpl, jpl_c_lib_version/1], nl, end(_G1573)])) ? creep
ERROR: Exported procedure jpl:jpl_c_lib_version/1 is not defined^ Exit: (30) notrace(print_message_lines_guarded(current_output, [begin(error, ansi('\033\[0m')), prefix('~NERROR: '), 'Exported procedure ~q:~q is not defined'-[jpl, jpl_c_lib_version/1], nl, end(ansi('\033\[0m'))])) ? creep
^ Call: (25) notrace(print_message_lines_guarded(current_output, [begin(informational, _G3081), prefix('~N% '), '~|~t~*+'-[0], '~p'-[library(jpl)], ' ~w'-[compiled], ' into ~w'-[...], ... - ...|...])) ? creep
% library(jpl) compiled into jpl 0.42 sec, 552 clauses
^ Exit: (25) notrace(print_message_lines_guarded(current_output, [begin(informational, ansi('\033\[0m')), prefix('~N% '), '~|~t~*+'-[0], '~p'-[library(jpl)], ' ~w'-[compiled], ' into ~w'-[...], ... - ...|...])) ? creep
true.
I googled and found this error is not rare, but did not got any good solution yet. Any suggestion would be greatly appreciated.
Kind regards,
- Rex