Como posso resolver esse erro de tempo de execução que parece estar relacionado às caixas de diálogo?

StackOverflow https://stackoverflow.com/questions/2301207

Pergunta

(Intel Mac OS 10.4.11, NetBeans IDE 6.8, Soylatte 1.0.3)

Embora eu esteja atualmente fazendo um curso universitário em Java e meu código é baseado em algumas perguntas do meu livro de Java, gostaria de deixar perfeitamente claro que isso não é a lição de casa. Isso é auto-assinado para os fins de estudo e meu professor provavelmente nunca verá isso, muito menos classificá-lo. Independentemente disso, suspeito que este seja um problema relacionado à configuração, pois não tive problemas com esse programa em uma máquina Vista no campus. Supondo que estou certo, não deve haver nenhum problema com nenhuma das políticas desta comunidade, pois não precisarei receber nenhum código de "resposta" para resolver esse problema.

Em Netbeans, meu programa compila e funciona bem, mas produz alguns erros de tempo de execução. Alguma ideia do que poderia estar acontecendo aqui?

Aqui está o meu código:

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


    }

}

Aqui estão os erros de tempo de execução produzidos pela 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)

A seguir, é apresentada uma sessão de terminal de solução de problemas usando a versão mais recente do JDK, cortesia de Soylatte (http://landonf.bikemonkey.org/static/soylatte/, que falha em produzir uma caixa de diálogo), bem como a mais antiga fornecida pela Apple como parte do meu sistema operacional (que como no NetBeans funciona bem também).

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$ 

Abaixo está uma tentativa de obter informações. Do ambiente do Windows Vista de um computador no meu laboratório da classe Java, que compilou e executou o programa perfeitamente. Sim, deveria ter usado -versão. Vou atualizá -lo se necessário para resolver esse problema.

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>

Fiz o melhor que poderia pesquisar e pesquisar este site em meu tempo limitado, mas não tive sorte de resolver isso por conta própria. Além de um pouco de experiência em super usuário e AppleScript, sou muito novo no estouro de empilhamento e programação, por isso seja gentil.

Foi útil?

Solução

O primeiro erro não tem nada a ver com seu código. É uma configuração de NetBeans ou uma configuração inválida em seu projeto. Se você compilar seu código na linha de comando com Javac e executá -lo com Java você vai ficar bem. Mas isso não responde à sua pergunta. Se eu fosse você, tentaria reinstalar o NetBeans.

O segundo erro mostra que sua JVM está tentando executar seu código no sistema XWindow. XWindow é o sistema GUI para Linux. Felizmente, há uma versão disponível para Mac e está disponível em seu DVD de Snow Leopard.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top