Comment puis-je résoudre cette erreur d'exécution qui semble être liée à des boîtes de dialogue?
Question
(Intel Mac OS 10.4.11, NetBeans IDE 6.8, SoyLatte 1.0.3)
Bien que je suis actuellement un cours collégial en Java et mon code est basé sur quelques questions de mon manuel Java, je voudrais qu'il soit parfaitement clair que ce n'est pas devoirs. Ceci est auto-attribué à des fins d'études et mon professeur verra probablement jamais cela, laisser seule année elle. Peu importe, je soupçonne l'existence de ce problème liés à la configuration que je n'avais pas ces problèmes en cours d'exécution de ce programme dans une machine Vista sur le campus. En admettant que je ne me trompe pas, il ne devrait pas y avoir de problème avec l'une des politiques de cette communauté que je ne aurai pas besoin de recevoir un code « réponse » pour résoudre ce problème.
Dans NetBeans, mon programme et compile fonctionne très bien, mais produit quelques erreurs d'exécution. Toute idée de ce qui pourrait se passer ici?
Voici mon code:
import java.util.Scanner; // Needed for console input.
import javax.swing.JOptionPane; // Needed for dialog boxes.
/**
This program performs the actions requested in questions 2.35 and 2.36 in the textbook.
* @author Dan
*/
public class Pages98To99 {
public static void main(String[]args){
// Asks the user for what answer he/she wants to see.
System.out.println("Do you want to see the answer to 2.35 or 2.36?");
Scanner keyboard = new Scanner(System.in); // Creates a scanner object.
double answer = keyboard.nextDouble();
if (answer == 2.35){
//2.35
JOptionPane.showMessageDialog(null, "Greetings Earthling.");
JOptionPane.showInputDialog("Enter a number.");}
else if (answer == 2.36){
//2.36
String str = JOptionPane.showInputDialog("Please enter your age.");
// Gets age.
int age = Integer.parseInt(str);} /* Converts age from a string to an
integer.*/
else
JOptionPane.showMessageDialog(null, "Go to another program.");
System.exit(0); // Ends the program
}
}
Voici les erreurs d'exécution produites par NetBeans:
2010-02-15 21:23:54.659 java[3891] CFLog (0): CFMessagePort: bootstrap_register(): failed 1103 (0x44f), port = 0xf203, name = 'java.ServiceProvider' See /usr/include/servers/bootstrap_defs.h for the error codes. 2010-02-15 21:23:54.660 java[3891] CFLog (99): CFMessagePortCreateLocal(): failed to name Mach port (java.ServiceProvider)
Ce qui suit est une session de terminal de dépannage utilisant à la fois la nouvelle version de courtoisie JDK SoyLatte ( http: //landonf.bikemonkey.org/static/soylatte/ , qui ne parvient pas à produire une boîte de dialogue), ainsi que l'aîné fourni par Apple dans le cadre de mon OS (qui fonctionne comme dans NetBeans bien autrement), ainsi .
Last login: Sat Feb 20 00:12:55 on ttyp1
Welcome to Darwin!
Dans-MacBook:~ Dan$ cd /Volumes/Lexar/NetBeansProjects/MacBook-Made/test/;echo $PATH;java -version;javac -version;javac Pages98To99.java;java Pages98To99;PATH=/sw/bin:/sw/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin;java -version;javac -version;javac Pages98To99.java;java Pages98To99
/sw/bin:/sw/sbin:/Applications/soylatte16-i386-1.0.3/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
java version "1.6.0_03-p3"
Java(TM) SE Runtime Environment (build 1.6.0_03-p3-landonf_19_aug_2008_14_55-b00)
Java HotSpot(TM) Server VM (build 1.6.0_03-p3-landonf_19_aug_2008_14_55-b00, mixed mode)
javac 1.6.0_03-p3
Do you want to see the answer to 2.35 or 2.36?
0
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)
at sun.awt.X11.XToolkit.(XToolkit.java:89)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at java.awt.Toolkit$2.run(Toolkit.java:836)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:828)
at sun.swing.SwingUtilities2$AATextInfo.getAATextInfo(SwingUtilities2.java:120)
at javax.swing.plaf.metal.MetalLookAndFeel.initComponentDefaults(MetalLookAndFeel.java:1556)
at javax.swing.plaf.basic.BasicLookAndFeel.getDefaults(BasicLookAndFeel.java:130)
at javax.swing.plaf.metal.MetalLookAndFeel.getDefaults(MetalLookAndFeel.java:1591)
at javax.swing.UIManager.setLookAndFeel(UIManager.java:537)
at javax.swing.UIManager.setLookAndFeel(UIManager.java:577)
at javax.swing.UIManager.initializeDefaultLAF(UIManager.java:1331)
at javax.swing.UIManager.initialize(UIManager.java:1418)
at javax.swing.UIManager.maybeInitialize(UIManager.java:1406)
at javax.swing.UIManager.getDefaults(UIManager.java:656)
at javax.swing.UIManager.getString(UIManager.java:802)
at javax.swing.UIManager.getString(UIManager.java:819)
at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:592)
at Pages98To99.main(Pages98To99.java:29)
java version "1.5.0_19"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02-306)
Java HotSpot(TM) Client VM (build 1.5.0_19-138, mixed mode, sharing)
javac 1.5.0_19
javac: no source files
Usage: javac
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
-classpath Specify where to find user class files
-cp Specify where to find user class files
-sourcepath Specify where to find input source files
-bootclasspath Override location of bootstrap class files
-extdirs Override location of installed extensions
-endorseddirs Override location of endorsed standards path
-d Specify where to place generated class files
-encoding Specify character encoding used by source files
-source Provide source compatibility with specified release
-target Generate class files for specific VM version
-version Version information
-help Print a synopsis of standard options
-X Print a synopsis of nonstandard options
-J Pass directly to the runtime system
Do you want to see the answer to 2.35 or 2.36?
0
2010-02-20 00:16:09.967 java[4618] CFLog (0): CFMessagePort: bootstrap_register(): failed 1103 (0x44f), port = 0xf103, name = 'java.ServiceProvider'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2010-02-20 00:16:09.968 java[4618] CFLog (99): CFMessagePortCreateLocal(): failed to name Mach port (java.ServiceProvider)
Dans-MacBook:/Volumes/Lexar/NetBeansProjects/MacBook-Made/test Dan$
Voici une tentative avortée à obtenir les informations. de l'environnement Windows Vista à partir d'un ordinateur dans ma classe Java laboratoire, qui a compilé et a couru le programme sans faille. Ouais, aurait dû utilisé -version. Je vais le mettre à jour si nécessaire pour résoudre ce problème.
Microsoft Windows [Version 6.0.6001]
Copyright (c) 2006 Microsoft Corporation. All rights reserved.
C:\Users\IRC111>java -showversion;javac -showversion
Unrecognized option: -showversion;javac
Could not create the Java virtual machine.
C:\Users\IRC111>java -showversion
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing)
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-client to select the "client" VM
-server to select the "server" VM
-hotspot is a synonym for the "client" VM [deprecated]
The default VM is client.
-cp
-classpath
A ; separated list of directories, JAR archives,
and ZIP archives to search for class files.
-D=
set a system property
-verbose[:class|gc|jni]
enable verbose output
-version print product version and exit
-version:
require the specified version to run
-showversion print product version and continue
-jre-restrict-search | -jre-no-restrict-search
include/exclude user private JREs in the version search
-? -help print this help message
-X print help on non-standard options
-ea[:...|:]
-enableassertions[:...|:]
enable assertions
-da[:...|:]
-disableassertions[:...|:]
disable assertions
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
-agentlib:[=]
load native agent library , e.g. -agentlib:hprof
see also, -agentlib:jdwp=help and -agentlib:hprof=help
-agentpath:[=]
load native agent library by full pathname
-javaagent:[=]
load Java programming language agent, see java.lang.instrument
-splash:
show splash screen with specified image
C:\Users\IRC111>javac -showversion
javac: invalid flag: -showversion
Usage: javac
use -help for a list of possible options
C:\Users\IRC111>
Je l'ai fait le mieux que je pouvais googler et chercher ce site dans mon temps limité, mais je l'ai pas eu de chance de résoudre ce moi-même. Mis à part un peu d'expérience dans le Super User et AppleScript, je suis assez nouveau à la fois débordement de la pile et la programmation, donc s'il vous plaît soyez doux.
La solution
La première erreur n'a rien à voir avec votre code. Il est soit une mauvaise configuration Netbeans ou un paramètre incorrect dans votre projet. Si vous compilez votre code sur la ligne de commande avec javac et l'exécuter avec java vous serez bien. Mais cela ne répond pas à votre question. Si je devais vous, je voudrais essayer de réinstaller NetBeans.
La deuxième erreur indique que votre machine virtuelle Java tente d'exécuter votre code dans le système Xwindow. XWindow est le système graphique pour Linux. Heureusement, il existe une version disponible pour Mac et il est disponible sur votre DVD léopard des neiges.