2016-05-17 19 views
-1

Ich weiß, dass es viele andere Themen zu diesem Thema gibt, und ich habe viele, viele davon gelesen und keine scheinen zu helfen. Ich bin neu in Java und so fühle ich, dass mir vielleicht etwas Einfaches fehlt. Wenn ich "Clean and Build" keine Fehler benutze, aber als sobald ich versuche den Code auszuführen oder zu debuggen, bekomme ich eine "No main class found".Keine Hauptgruppe gefunden - Netbeans

Wenn ich die "Public Void Main" und "Public Void IsPrime" ändern, um "Static" zu enthalten, dann habe ich "Fehler nicht statische Variablen aus einem statischen Kontext verwiesen".

Kann jemand irgendeine Anleitung zur Verfügung stellen?

public class LargestPrime { 

/** 
* 
*/ 
public long factor; 
/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args){ 
    double var, sqvar; 
    var = 600851475143L; 
    sqvar = Math.sqrt(var); 
    ArrayList<Long> factors = new ArrayList<>(); 
    long i = 1; 

    while(i <= sqvar){ 
     if (var % i == 0){ 
      if(i % 2 != 0){ 
       factors.add(i); 
      } 
     } 
     i = i + 2; 
    } 

    ArrayList<Long> primes = new ArrayList<>(); 

    int j; 
    for(j = 0; j <= factors.size(); j++){ 
     factor = factors.get(j); 
     LargestPrime obj = new LargestPrime(); 
     obj.isPrime(factor); 
    } 

} 

/** 
* 
* @param testing 
* 
*/ 
public static void isPrime(long testing){ 
    testing = factor; 
    System.out.println(testing); 
} 
} 
+0

Änderungsfaktor zu einer statischen Variablen: public static langen Faktor; – Abdelhak

+0

das ist nicht das Problem @Abdelhak – emotionlessbananas

+0

und verwenden ** LargestPrime.isPrime (Test) ** anstelle von ** obj.isPrime (Test) ** – emotionlessbananas

Antwort

0

Versuchen Sie, die factor Variable auf einen static wie diese public static long factor; Variablen zu ändern.
und ersetzt diese for Schleife:

for(j = 0; j <= factors.size(); j++){ 

Mit < statt <=, weil die Größe der Arraylist von 0 zu size-1 mit:

for(j = 0; j < factors.size(); j++){ 
Verwandte Themen