سؤال

أحصل على unsupportedclassversionError التي ألقيت عند تشغيل JNLP، ولكن عندما أحاول تشغيل ملفات الجرة ذات الصلة من سطر الأوامر كل شيء يعمل بشكل جيد. حاولت ضبط إصدارات J2SE إلى 1.5+، 1.6+، باستخدام ملفات جرة موقعة / غير موقعة، ولكن كل ذلك لا يساعد.

أحاول تشغيل ملف جرة الخاص بي مع اثنين من ملفات جرة دعم (mysql-connector.jar و swingx.jar). تم تجميع ملف Jar الخاص بي مع إعدادات الامتثال 1.6 في الكسوف والمدمج في جرة مع النملة. نظرا لأنني أستطيع تشغيل الجرار الثلاثة من سطر الأوامر باستخدام Java 1.6، فأنا بحظر بعض الشيء على فشل JNLP. أي مساعدة موضع تقدير.

هنا ملف JNLP:

<?xml version="1.0" encoding="utf-8"?>
<!-- JNLP File -->
<jnlp spec="1.5+" codebase="http://www.etc.com/p" href="demo-daily.jnlp">
 <information>
  <title>demo: daily stock charting utility</title>
  <offline-allowed/>
 </information>
 <security>
 </security>
 <resources>
  <j2se href="http://java.sun.com/products/autodl/j2se" version="1.6+" />
  <jar href="demo-daily.jar" main="true" />
  <jar href="swingx.jar" main="false" />
  <jar href="mysql-connector.jar" main="false" />
 </resources>
 <application-desc main-class="quipu.viewers.charts.stockcharts.daily"/>
</jnlp>

الخطأ الذي أحصل عليه هو:

Java.lang.unsupportedClassVersionError: رقم الإصدار السيئ. .java: 124) في java.net.urlclassloader.defineclass (Urlclassloader.java:260) في java.net.urlclassloader.access $ 100 (Urlclassloader.java:56) في java.net.urlclassloader $ 1.Run (Urlclassloader.java: 195) في java.security.accesscontroller.doplivileded (الطريقة الأصلية) في java.net.urlclassloader.findclass (Urlclassloader.java: 188) في com.sun.jnlp.jnlpclasslaslaslasslasslasslass (jnlpclasslasloader.java:256) at java.lang . classloader.loadclass (classloader.java:316) في java.lang.classloader.loadclass (classlader.java:251) في com.sun.javaws.launcher.dolaunchapp (launcher.java:1052) في com.sun.javaws. launcher.run (launcher.java:105) في java.lang.thread.run (Thread.java:613)

هل كانت مفيدة؟

المحلول

أولا، افتح نافذة CMD أو نافذة شل (حسب الاقتضاء إلى نظام التشغيل الذي تستخدمه) واكتب هذا:

java -version

للتأكد من أن الإصدار الذي تقوم بتشغيله هو الإصدار الذي تتوقع تشغيله. ثم، مرة أخرى من سطر الأوامر، قم بإصدار الأمر:

javaws http://host/path/to/your.jnlp

إذا كنت لا تستطيع الركض javaws من سطر الأوامر، سيتعين عليك معرفة المكان الذي يتم تثبيته واستخدام المسار الكامل للتنفيذ. تحت ويندوز، سيكون هذا شيء مثل

C:\Program Files\Java\jre1.6.0_14\bin\javaws.exe

وتحت Linux قد يكون /usr/bin/javaws أو قد يكون في دليل آخر.

أعرف تحت Windows، على أي حال، عند تشغيل أي تطبيق Java Web Start، يتم استخدام Loader JNLP من أحدث إصدار Java مثبتا. أو على الأقل من المفترض أن تفعل هذا. لم أجرب تحت Linux (أو MacOS) لمعرفة كيف يعمل هناك. ولكن من الممكن دائما أن يكون هناك شيء قد افسدت وعندما تقوم بتشغيل JNLP تقوم بتشغيل قاذفة Java 1.5 Jnlp بطريق الخطأ بطريق الخطأ.

يمكنك دائما محاولة إلغاء تثبيت وإعادة تثبيت أحدث إصدار من Java للتأكد من تثبيت أحدث وأكبر إصدار بشكل صحيح. هذا قد يصلح الأشياء. قد ترغب أيضا في التحقق من مسار $ الخاص بك (أو٪ مسار٪) للتأكد من أن الإصدار الصحيح من Java موجود على المسار. (هذا ليس ضروريا دائما ... ولكن إذا كان أي إصدار من Java على المسار، تأكد من أن الإصدار الذي تريده.) التحقق من متغير البيئة Java_home للتأكد من أنه يشير إلى المكان الذي تعتقد أنه يفعل ذلك.

نصائح أخرى

مجرد تخمين، ولكن تحديث العلامة الافتتاحية للإشارة إلى المواصفات = "1.6+"

<jnlp spec="1.6+" codebase="http://www.etc.com/p" href="demo-daily.jnlp">
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top