type studio solucion programacion not does java eclipse types launching-application

java - studio - manual de programacion android pdf



La selección de error de inicio de Java no contiene un tipo principal (3)

Cree un nuevo proyecto y haga que la ruta de compilación apunte a las carpetas de origen existentes. Esto resolverá el error "La selección no contiene un tipo principal".

Soy un novato total en Java y Eclipse. Busqué en Google por mucha ayuda pero todavía confundido. Desde Eclipse, hago clic en ejecutar, luego elijo la aplicación Java y recibo este error inmediatamente. Aquí está mi código fuente:

import java.util.Arrays; import java.util.Scanner; public class SliceandDice { void main(String args[]) { System.out.println("This is the BIGGEST program console"); System.out.println("Each input line will be a pair of numbers separated by a COMMA."); System.out.println("First number must be an unsigned number less than 10000. Max example: 9999"); System.out.println("Second number is the ''target'' number."); System.out.println("Example of an input line to be typed:"); System.out.println(" 4721 , 75"); for (int i = 1; i < 6; i++) // each time in this loop, we have a new // set. { System.out.println("Type a pair of numbers according to the syntax rules above:"); String iLine; // Declare a variable to hold the name. Scanner in = new Scanner(System.in); iLine = in.nextLine(); // Read one line from the console. in.close(); // Note 2 NumberSet set = ParseRawInput(i, iLine); if (set.IsValid()) { System.out.println("Valid inputs. Card Number to tear apart:" + set.getCardNumber() + "; Target Number: " + set.getTargetNumber()); String cardNumber = set.getCardNumber(); int target = set.getTargetNumber(); AnalyzeNumber(cardNumber, target); // solve for this set of // numbers } else { System.out.println("Invalid set of numbers. Enter in format: nnnn,tttt"); } } } private void AnalyzeNumber(String cn, int t) { int n = cn.length(); int m = n; int sums = 4 + 3 + 2 + 1; int[] possibleAnswers = new int[sums]; int answer = 0; for (int digits = 1; digits < m; digits++) { possibleAnswers[answer] = PossibleAnswer(0, digits, cn); answer++; } System.out.println("-----------"); possibleAnswers[answer] = PossibleAnswer(1, 2, cn); answer++; possibleAnswers[answer] = PossibleAnswer(1, 3, cn); answer++; System.out.println("-----------"); possibleAnswers[answer] = PossibleAnswer(2, 2, cn); answer++; System.out.println("-----------"); int finalAnswer = FindBiggestNearTarget(possibleAnswers, t); System.out.println("Best sum (closet to target) = " + String.valueOf(finalAnswer)); } private int PossibleAnswer(int extender, int lengthDigits, String cn) { // extender => which digit position gets multilength adjustment int n = cn.length(); int[] number = new int[n]; // holds individual addends int sum = 0; int LEN = 1; // default length when we need it String addends = ""; int i; if (extender == 0) { i = 0; while (i < n) { addends += cn.substring(i, lengthDigits) + " + "; number[i] = Integer.parseInt(cn.substring(i, lengthDigits)); sum += number[i]; i = i + lengthDigits; // always increment at least 1 position if (i + lengthDigits > n) lengthDigits = 1; } System.out.println(addends + " = " + String.valueOf(sum)); return sum; } if (extender == 1) { i = 0; while (i < n) { addends += cn.substring(i, LEN) + " + "; number[i] = Integer.parseInt(cn.substring(i, LEN)); sum += number[i]; if (i == 0) { i++; LEN = lengthDigits; } else if (i == 1) { i = i + lengthDigits; // i = 3 (last number) LEN = 1; } else if (i == 2) { i = 1; LEN = 3; } else { i = n; // force exit of while loop } if (i + LEN > n) LEN = 1; } System.out.println(addends + " = " + String.valueOf(sum)); return sum; } if (extender == 2) { i = 0; while (i < n) { addends += cn.substring(i, LEN) + " + "; number[i] = Integer.parseInt(cn.substring(i, LEN)); sum += number[i]; i = i + LEN; // always increment at least 1 position if (i == extender) { LEN = lengthDigits; } if (i + LEN > n) i = n; // force out of loop } System.out.println(addends + " = " + String.valueOf(sum)); return sum; } return 0; } private int FindBiggestNearTarget(int[] possibles, int target) { int[] sumArray = possibles; Arrays.sort(sumArray); // temporary variable for swapping values int temp; // reverse the array for (int i = 0; i < sumArray.length / 2; ++i) { temp = sumArray[i]; sumArray[i] = sumArray[sumArray.length - i - 1]; sumArray[sumArray.length - i - 1] = temp; } for (int i = 0; i < sumArray.length; i++) { if (sumArray[i] < target) { return sumArray[i]; } } return -1; // should not occur } public static NumberSet ParseRawInput(int i, String rawInput) { NumberSet errorSet = new NumberSet(-1, "", 0); // string[] stringArray = rawInput.Split( new char[] { '',''}); String[] stringArray = rawInput.toString().split(rawInput, '',''); if (stringArray.length != 2) return errorSet; // ensure 2 tokens separated by comma // work on 1st token: String cardNumberString = stringArray[0].trim(); // trim any whitespace // from this token if (cardNumberString.length() > 4) return errorSet; // ensure token is 4 bytes or less // declare token as integer int cardNumber = Integer.parseInt(cardNumberString); // work on 2nd token: String targetNumberString = stringArray[1].trim(); // trim any // whitespace from // token if (targetNumberString.length() > 4) return errorSet; // ensure token is 4 bytes or less int targetNumber = Integer.parseInt(targetNumberString); // convert into // int NumberSet validSet = new NumberSet(i, cardNumberString, targetNumber); return validSet; } } class NumberSet { // Java getter & setter private String CardNumber; private int TargetNumber; private int SetNumber; public int getSetNumber() { return this.SetNumber; } public String getCardNumber() { return this.CardNumber; } public int getTargetNumber() { return this.TargetNumber; } public NumberSet(int sn, String cn, int t) { this.SetNumber = sn; this.CardNumber = cn; this.TargetNumber = t; } public Boolean IsValid() { if (this.SetNumber < 0) return false; return true; } }


No puede definir el método principal como lo hace en C ++.

Para el intérprete de Java, el método principal siempre debe ser público y estático. Así que necesitas cambiar la firma de tu método principal a

public static void main(String args[])

Prueba esto, y siéntete libre de preguntar más. :-)


También experimenté este problema y pude resolverlo. La solución no fue mencionada todavía.

En mi caso, estoy trabajando en Eclipse con Xtend y convertí el proyecto a Maven. Después de eso hubo una entrada de exclusión de fuente en su archivo classpath:

<classpathentry excluding="**" kind="src" output="target/classes" path="xtend-gen">

Entonces solo necesitas borrar esta línea y hacer una compilación limpia.