ごくまれにしか実行しない機能は地図アプリから切り離し、ユーティリテイとする。
当面、Windowsパソコンで実行するが、 将来的には、Androidタブレットあるいは ChromeBook に移行するかも知れないことと、Android Javaとの共通点が多いことから 本家Javaプログラムとする。
スマホでは関連データを SDカードの Mapディレクトリ下に置いている。 現在は構造化されていないので、いささか管理しずらい。いずれ、3つ、4つに分類して管理したい。
パソコンでは c:/map/data ディレクトリ下に置いている。
スマホでの実機デバッグは電池の消耗が激しいので、最小限にとどめる。 Androidエミュレータは同じパソコンで動くため、操作は簡単である。
当初、MapUtilをAndroidアプリとして、GPSログ変換を行おうとしたが、ちょっとした操作の手違いでデータが全部消えてしまった。
Androidエミュレータはデバッグには使えるが、重い処理を行うには無理がありそう。
c:\map> javac -d c:/MapUtil/class c:/MapUtil/java/MapUtil.java c:\map> java -Dfile.encoding=UTF-8 -Xmx4g -classpath c:/MapUtil/class MapUtil Exception in thread "main" java.lang.UnsupportedClassVersionError: MapUtil has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
c:\map>where java C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.exe C:\Program Files\Microsoft\jdk-11.0.12.7-hotspot\bin\java.exe c:\map>where javac C:\Program Files\Microsoft\jdk-11.0.12.7-hotspot\bin\javac.exe
Pathリストの順番を変更することにより、解決した。