21 Nisan 2015 Salı

Jar Hatası

       S.a. Arkadaşlar,
       Bugünkü yazacağız yazımız diğerlerinden bir yönü ile farklı olacak. Daha önce hep bir konuyu anlatmaya çalıştık ve konuyla ilgili irili ufaklı kodlar paylaşmaya çalıştık, fakat bu yazımız karşılaştığım bir hatayla ilgili. Yazıp yazmamak konusunda kararsız kalsam da en sonunda yazmaya karar verdim. En kötü ihtimalle daha sonra dönüp bakabileceğim bir kaynak olur düşüncesiyle. İyi ihtimalle başka insanlar da faydalanır düşüncesiyle. Şimdi gelelim hatamıza. Daha önceki yazılardan birinde yazmıştık. Cmd komutu ile seri numarası ve bilgisayar ile diğer bilgiler alınabileceğini söylemiştik, daha sonra da jar dosyasına çevirmiştik. .Jar dosyası ben de çalışıyor fakat arkadaşlarımda denediğimde çalışmadığını gördüm. Küçük bir araştırma yaptım ama genelde insanlar javadaki sürümlerin aynı olması üzerinde durmuşlar. Şimdi burada kodu paylaşayım daha sonra üzerinde konuşmaya devam edelim.



        Process process2 = Runtime.getRuntime().exec(
                                        new String[] { "wmic", "bios", "get", "serialnumber" });
        process2.getOutputStream().close();
        Scanner sc = new Scanner(process2.getInputStream());
        String property = sc.next();
        String serial = sc.next();
        System.out.println(property + ": " + serial);

        Kodumuz burada mevcut. Dediğimiz gibi daha önceki konularda da vardı. Burada çok önemli bir noktaya dikkat çekmek istiyorum. Siz de muhakkak karşılaşmışsınızdır. Açtığımız bir bağlantıyı kapatmamız gerektiğini. Mesela hatırlıyorum da hocam bağlantıyı kapatmasak ne olur diye arkadaşların soru sorduğunu. Hocamız cevap verirdi ama bazı şeyler gözle görülüp, tecrübe edilmeyince gerçekten tam manasıyla oturmayabiliyor. Bende böyle oldu bu konu. Biraz araştırmadan sonra fark ettim ki sc.close(); satırı ile bu bağlantıyı kapatmam gerek. Şimdi iş bitiyor mu hayır ? Bir de ide'nin güzelliği devreye girdi burada. Kodunuzu try catch içine alın diye uyardı.

            String[][] info = new String[6][5];
            Process process = Runtime.getRuntime().exec(
                                          new String[]{"wmic", "bios", "get", "serialnumber"});
            process.getOutputStream().close();
            try (Scanner sc = new Scanner(process.getInputStream())) {
                  String property = sc.next();
                  String serial = sc.next();
                 System.out.println(property + ": " + serial);
            } catch (Exception e) {
                e.printStackTrace();
            }

       Kodumuzu try catch içine aldıktan sonra tekrar jarımızı oluşturduk. ;Netbeans ile jarımızı nasıl oluşturduğumuzu söylemiştik. Eclipse ile proje üzerinde sağ tıklayıp export diyoruz. Jar'i bulup ana sınıfımızı ve kaydedilecek yeri gösterip bitiriyoruz. Şimdi projenizde başka bir aksilik yoksa artık oluşturmuş olduğunuz Jarı java yüklü her bilgisayarda kullanabilirsiniz. İyi çalışmalar dilerim.

Hiç yorum yok:

Yorum Gönder