Exception beklenmeyen hata demek. NullPointerException yaygın karşılşılan bir Java hatası. Muhtemelen bulunacağı varsayılan bir nesne bulunamıyor. Ama bulunup bulunamadığı kontrol edilmeden kod devam ediyor. Bu net bir hata. Başka bir programın kurulması bir şekilde programın çalışmamasına sebep olabilir, ama doğru yazılmış bir uygulamada NullPointerException üretip çakılmaz. Java versiyonu ile çok ilgili bir durum değil (ilgili olacağı bazı senaryolar üretebilirim ama olması pek kuvvetli ihtimal olan şeyler değil).
Siemens uygulaması ile çakışmasa, uygulama daha önce çalışırken şimdi çalışmıyorsa ilk tahminim konfigürasyon dosyaları olurdu. Orada bir parametreyi bulacağını varsayıp bulamıyor olabilir, uygulamayı kaldırın, kalan konfigürrasyon dosyalarını bulup silin, sonra yeniden kurun derdim.
Ancak, mevcut durumda problemin ilk şüphelisi Java Comm API olabilir. Normal şartlarda Java kodu işletim sistemi bağımsız olduğundan işletim sistemi ile çok az ilişki kurar. Bunların başlıcaları ortam değişkenleri ve native uzantılar (dll gibi).
Java seri port haberleşmesi için Comm API (Java Communication API) diye native dll içeren bir kütüphane kullanıyor. Cihaz ile buradan iletişim kuruyordur diye düşünüyorum. Diğer uygulamalar kurulum sırasında bu dll için arama yolunu etkileyecek bir değişiklik yapıyor olabilirler. Java dll dosyaları için belli bir arama yolu sıralaması kullanıyor.
Exception için stack trace dediğimiz bir döküm var. Eğer log dosyasında hata ile ilgili döküm varsa daha net bir şey söyleyebilirim. Stack trace dediğim şey şöyle bir şey:
java.lang.NullPointerException
at Maze.getNumRandOccupants(Maze.java:118)
at P4TestDriver.testMaze(P4TestDriver.java:995)
at P4TestDriver.main(P4TestDriver.java:116)
at __SHELL8.run(__SHELL8.java:7)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at bluej.runtime.ExecServer$3.run(ExecServer.java:814)
Önerim diğer uygulamalar kurulurken sistem değişkenleri üzerinde (JAVA_HOME, PATH vb) ne tür değişiklikler yapıyorlar ona bir bakın. Bir de o programı kurmanızın öncesinde ve sonrasında komut satırından aşağıdaki kodu çalıştırıp sonuç değişiyor mu ona bir bakın.
java --version