كيف يمكنني التوقيع على حزمة OSGI مع النملة دون الكتابة فوق محتويات البيان.
سؤال
لدي برنامج تشغيل Eclipse الذي قمت بإنشاء جرار Osgi Bundle مع النمل. أرغب في توقيعها بمهمة النمل، ولكن هذا الكتابة فوق محتويات البيان مع توقيعات الفصل، مما يجعل حزم OSGI غير صالحة للاستعمال. تحتوي أداة JDK Jarsigner على نفس السلوك. يبدو أن Eclipse PDE لديها هذه الوظيفة، ولكن بقدر ما أعرف أنه يمكنك استخدامها فقط من داخل الكسوف. أريد أن أكون قادرا على تشغيل بناء النمل من سطر الأوامر. هل يعرف أي شخص بطريقة بسيطة لإلحاق التوقيعات الفئة للإضحائص. بدلا من الكتابة فوقه؟
المحلول
لا أعتقد أنه يتم الكتابة فوق البيان بشكل افتراضي. لاحظ البرنامج النصي وحدة التحكم التالية:
$ touch MyMainClass.class
$ echo 'Main-Class: MyMainClass' > MyManifest
$ jar cvmf MyManifest myjar.jar MyMainClass.class
added manifest
adding: MyMainClass.class(in = 0) (out= 0)(stored 0%)
$ unzip -c myjar.jar META-INF/MANIFEST.MF
Archive: myjar.jar
inflating: META-INF/MANIFEST.MF
Manifest-Version: 1.0
Created-By: 1.6.0_17 (Apple Inc.)
Main-Class: MyMainClass
$ jarsigner myjar.jar mykeyid
Enter Passphrase for keystore:
$ unzip -c myjar.jar META-INF/MANIFEST.MF
Archive: myjar.jar
inflating: META-INF/MANIFEST.MF
Manifest-Version: 1.0
Created-By: 1.6.0_17 (Apple Inc.)
Main-Class: MyMainClass
Name: MyMainClass.class
SHA1-Digest: 2jmj7l5rSw0yVb/vlWAYkK/YBwk=
نصائح أخرى
يبدو أن هذا هو مشكلة JDK. مع 1.5.0_16
, ، يكتب JarSigner على بياني الحالي، ولكن مع 1.6.0_13
كل شيء يعمل بشكل جيد.
لا تنتمي إلى StackOverflow