7
votes

Java Binary Compatibility Problème: Sun.font.fontManager Classe est devenue une interface

J'utilise le navigateur Web Lobo - Java Bibliothèque, et cela me donne une exception qui après Certaines recherches que j'ai déterminées pourraient être dues à la bibliothèque ayant été respectées contre une version plus ancienne de Java.

Le code est comme suit: p> xxx pré>

et la trace de la pile est: p> xxx pré>

quand j'ai examiné org.lobobrowser.util.gui.fontfactory.createfont code> J'ai trouvé une interface appelée FontManager code> qui a changé de la version précédente de Java. Dans cette classe code> Fontfactory code>, ils ont utilisé une classe de cette interface qui n'est plus disponible. Comment puis-je résoudre ce problème? P>

L'interface FontManager code>: p> xxx pré>

et la classe utilisée dans la bibliothèque qui n'est pas Disponible: P>

   return FontManager.getCompositeFontUIResource(new Font(name, style, size));


7 commentaires

Dupliqué possible de Stackoverflow.com/ Questions / 2863043 / ... . Soleil. * et com.sun. * sont des packages internes susceptibles de changer sans préavis. "COM.SUN.XML.Internal Package est un package interne comme le nom suggère. Les utilisateurs ne doivent pas écrire du code qui dépend des classes de mise en œuvre internes de JDK. Ces classes sont des détails de mise en œuvre internes de la JDK et sous réserve de changement sans préavis"


@Mikesamuel, alors tu me dis que je suis condamné?


Je soupçonne que la bibliothèque que vous utilisez dépend des détails internes d'une version JVM particulière. Il peut y avoir des moyens de pirater le problème, mais je ne les connais pas. Je vérifierais avec le développeur de la bibliothèque pour voir s'ils sont conscients du problème - ils peuvent déjà avoir une solution ou des plans pour un.


"Il y a une situation" avec votre clé de quart de travail? Sinon, appliquez une fois au début de chaque phrase, pour le mot i et tout nom propre. Si oui, corrigez-le. Il est douloureux d'essayer de lire de tels "marmonniers".


@Andrewthompson qu'entendez-vous par situation et par touche de changement de vitesse? ne l'a pas eu :(


@Mikesamuel Que diriez-vous si j'utilise une ancienne version d'une IDE Java? (comme Eclipse ou Netbeans)


@ user1064929 - Cette bibliothèque ne fera que travailler avec toute la version du soleil. * Les paquets qu'il a été écrit contre. Je suggérerais de contacter qui l'a écrit.


3 Réponses :


4
votes

Je pense que "sun.font.fontmanager'was a été supprimé avec Java7, donc si tu dois l'utiliser (je recommanderais contre lui et cherche un autre paquet à la place), vous pouvez essayer de l'exécuter avec Java6.


2 commentaires

Cela peut sembler bon marché, mais je n'ai jamais été dans cette situation, j'ai eu des recherches sur ce que vous avez dit et téléchargé JRE6 , mais maintenant je n'ai aucune idée de recompiler l'ancien fichier .jar. Ou devrais-je continuer tout le monde avec Java 6? Dans l'un de ces cas, comment cela pourrait être? Je veux dire comment se fait-il utiliser un IDE avec Java 6? Merci :)


Ma suggestion était d'exécuter la compilation et l'application avec JDK6 - ne pas recompiler le fichier JAR ancien. Je n'ai aucune idée si cela fonctionnera, mais cela vaut la peine d'essayer.



4
votes

Le projet Lobobrowser a été remplacé par LoboEvolution , mais il y a un PATCH C'est mentionné pour la mise en œuvre obsolète de Lobobrowser.

Mise à jour Fontfactory.java pour importer une méthode publique et réviser La méthode Createefont comme suit: xxx


1 commentaires

Impossible de télécharger le bocal lié, mais peut obtenir que Lobo fonctionne après la compilation manuelle et le remplacement de la classe mentionnée dans le ticket (et attraper le moteur Rhino JS de Mozilla). La source CSV semble être à jour.



0
votes

javax.swing.text.stylecontext.getDefaultTylecontext.getfont pourrait fonctionner pour vous, sur les versions JDK.

Voir plus loin http://elliotth.blogspot.com.au/2007/04/far-etite-asian-fonts-with-java-7-on.html


0 commentaires