Hello World,
ich habe folgendes Problem:
Wenn ich mein Projekt im Programm Eclipse exportiere und danach die .jar datei in den Java Decompiler öffne,
wird eine while schleife in eine if abfrage umgewandelt.
Ich habe auch versucht statt der while schleife eine for schleife zu nutzen, selbes Problem
Hier in zeile 12 ist die while schleife
[CODE lang="java" title="Code in Eclipse" highlight="12"] public static void Start(String sDateiUser, String sDateiProxies, String timetoplay, String sPlaylist) throws InterruptedException {
ArrayList<String> users = new ArrayList<>();
ArrayList<String> proxys = new ArrayList<>();
users = Datei.Lesen(sDateiUser);
if (sDateiProxies.length() != 0) {
proxys = Datei.Lesen(sDateiProxies);
}
int i = 0;
int iProxy = 0;
while(i < users.size()) {
if ((proxys.size() - 1 >= i && proxys.size() - 1 >= iProxy) || sDateiProxies.length() == 0) {
try {
String sUsername = ((String)users.get(i)).split(":")[0];
String sPasswort = ((String)users.get(i)).split(":")[1];
String ChromeDriver = Datei.Configuration("ChromeDriver");
System.setProperty("webdriver.chrome.driver", ChromeDriver);
ChromeOptions options = new ChromeOptions();
if (sDateiProxies.length() != 0) {
options.addArguments(new String[] { "--proxy-server=http://" + (String)proxys.get(iProxy) });
}
options.addArguments(new String[] { "--mute-audio" });
iProxy++;
driver.add(i, new ChromeDriver(options));
((WebDriver)driver.get(i)).manage().window().maximize();
((WebDriver)driver.get(i)).get("http://accounts.spotify.com/de/login?continue=" + sPlaylist);
while(!((WebDriver)driver.get(i)).getTitle().equals("Anmelden - Spotify")) {
Thread.sleep(5000L);
System.out.println("kk");
JavascriptExecutor js = (JavascriptExecutor)driver.get(i);
js.executeScript("window.scrollBy(0,1000)", new Object[0]);
String ElementLoginUsername = Datei.Configuration("ElementLoginUsername");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementLoginUsername)).sendKeys(new CharSequence[] { sUsername });
String ElementLoginPassword = Datei.Configuration("ElementLoginPassword");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementLoginPassword)).sendKeys(new CharSequence[] { sPasswort });
String ElementLoginButten = Datei.Configuration("ElementLoginButten");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementLoginButten)).click();
// System.out.println("hat sich angemeldet!");
// bricht nach x mal die cookiesuche ab // Nur wenn ohne Proxy dann kommt Cookieabfrage
int j = 0;
while(j < 3) {
try {
// System.out.println("Versuch ElementCookieButton...");
Thread.sleep(1000);
String ElementCookieButton = Datei.Configuration("ElementCookieButton");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementCookieButton)).click();
// System.out.println("Versuch ElementCookieButton ERFOLGREICH");
break;
}catch(Exception e) {
try {
// System.out.println("catch block - Versuch ElementCookieButton2");
Thread.sleep(1000);
String ElementCookieButton2 = Datei.Configuration("ElementCookieButton2");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementCookieButton2)).click();
// System.out.println("catch block ende - Versuch ElementCookieButton2 ERFOLGREICH");
break;
}catch(Exception e2) {
// System.out.println("ElementCookieButton2 auch Exception, beginne von vorne while");
j++;
}
}
}
String p = "";
if (sDateiProxies.length() != 0) {
p = String.valueOf(String.valueOf((sDateiProxies.length() != 0))) + ": " + (String)proxys.get(iProxy - 1);
} else {
p = String.valueOf((sDateiProxies.length() != 0));
}
JTableRow.add(String.valueOf(i), sUsername, p);
}
}catch(Exception e2) {
i--;
}
i++;
}
System.out.println("while wird jetzt gebreaked!");
break;
}[/CODE]
Hier in zeile 9 wurde einfach nach dem exportieren eine if abfrage aus der while schleife.
[CODE lang="java" title="Code aus Java Decompiler" highlight="9,"]public static void Start(String sDateiUser, String sDateiProxies, String timetoplay, String sPlaylist) throws InterruptedException {
ArrayList<String> users = new ArrayList<>();
ArrayList<String> proxys = new ArrayList<>();
users = Datei.Lesen(sDateiUser);
if (sDateiProxies.length() != 0)
proxys = Datei.Lesen(sDateiProxies);
int i = 0;
int iProxy = 0;
if (i < users.size()) {
if ((proxys.size() - 1 >= i && proxys.size() - 1 >= iProxy) || sDateiProxies.length() == 0) {
try {
String sUsername = ((String)users.get(i)).split(":")[0];
String sPasswort = ((String)users.get(i)).split(":")[1];
String ChromeDriver = Datei.Configuration("ChromeDriver");
System.setProperty("webdriver.chrome.driver", ChromeDriver);
ChromeOptions options = new ChromeOptions();
if (sDateiProxies.length() != 0)
options.addArguments(new String[] { "--proxy-server=http://" + (String)proxys.get(iProxy) });
options.addArguments(new String[] { "--mute-audio" });
iProxy++;
driver.add(i, new ChromeDriver(options));
((WebDriver)driver.get(i)).manage().window().maximize();
((WebDriver)driver.get(i)).get("http://accounts.spotify.com/de/login?continue=" + sPlaylist);
while (!((WebDriver)driver.get(i)).getTitle().equals("Anmelden - Spotify")) {
Thread.sleep(5000L);
System.out.println("kk");
JavascriptExecutor js = (JavascriptExecutor)driver.get(i);
js.executeScript("window.scrollBy(0,1000)", new Object[0]);
String ElementLoginUsername = Datei.Configuration("ElementLoginUsername");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementLoginUsername)).sendKeys(new CharSequence[] { sUsername });
String ElementLoginPassword = Datei.Configuration("ElementLoginPassword");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementLoginPassword)).sendKeys(new CharSequence[] { sPasswort });
String ElementLoginButten = Datei.Configuration("ElementLoginButten");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementLoginButten)).click();
int j = 0;
while (j < 3) {
try {
Thread.sleep(1000L);
String ElementCookieButton = Datei.Configuration("ElementCookieButton");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementCookieButton)).click();
break;
} catch (Exception e) {
try {
Thread.sleep(1000L);
String ElementCookieButton2 = Datei.Configuration("ElementCookieButton2");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementCookieButton2)).click();
break;
} catch (Exception e2) {
j++;
}
}
}
String p = "";
if (sDateiProxies.length() != 0) {
p = String.valueOf(String.valueOf(String.valueOf((sDateiProxies.length() != 0)))) + ": " + (String)proxys.get(iProxy - 1);
} else {
p = String.valueOf((sDateiProxies.length() != 0));
}
JTableRow.add(String.valueOf(i), sUsername, p);
}
} catch (Exception e2) {
i--;
}
i++;
}
System.out.println("while wird jetzt gebreaked!");
}
Thread.sleep(1000L);
int x = 0;
while (x <= i - 1) {
try {
int AktuelleZeit = 0;
Thread.sleep(500L);
Play(driver.get(x));
AktuelleZeit = Integer.valueOf(getPlaytime(driver.get(x)).replace(":", "")).intValue();
x++;
break;
} catch (Exception e2) {
int AktuelleZeit = 0;
Thread.sleep(500L);
try {
Play2(driver.get(x));
AktuelleZeit = Integer.valueOf(getPlaytime(driver.get(x)).replace(":", "")).intValue();
break;
} catch (Exception exception) {}
}
}
while (true) {
x = 0;
while (x <= i - 1) {
try {
int AktuelleZeit = Integer.valueOf(getPlaytime(driver.get(x)).replace(":", "")).intValue();
if (AktuelleZeit >= Integer.valueOf(timetoplay.replace(":", "")).intValue()) {
Skip(driver.get(x));
System.out.println("song wurde geskipppt jetzt folgt getsong!");
JTableRow.plus(x, getSong(driver.get(x)));
System.out.println("vor der getplaytime while schleife");
while (Integer.valueOf(getPlaytime(driver.get(x)).replace(":", "")).intValue() > 0)
Thread.sleep(1000L);
}
x++;
} catch (Exception e) {
Thread.sleep(1000L);
}
}
}
}[/CODE]
Kann mir jemand sagen wieso er nach dem export die while schleife in eine if anweisung ändert?
Ich habe dieses Problem nirgends im Internet gefunden.
Ich hoffe jemand kann mir helfen.
Eckdaten:
Ich nutze wie gesagt Eclipse
Version: 2020-12 (4.18.0)
Build id: 20201210-1552
jdk 13.0.2
Windows 10
ich habe folgendes Problem:
Wenn ich mein Projekt im Programm Eclipse exportiere und danach die .jar datei in den Java Decompiler öffne,
wird eine while schleife in eine if abfrage umgewandelt.
Ich habe auch versucht statt der while schleife eine for schleife zu nutzen, selbes Problem
Hier in zeile 12 ist die while schleife
[CODE lang="java" title="Code in Eclipse" highlight="12"] public static void Start(String sDateiUser, String sDateiProxies, String timetoplay, String sPlaylist) throws InterruptedException {
ArrayList<String> users = new ArrayList<>();
ArrayList<String> proxys = new ArrayList<>();
users = Datei.Lesen(sDateiUser);
if (sDateiProxies.length() != 0) {
proxys = Datei.Lesen(sDateiProxies);
}
int i = 0;
int iProxy = 0;
while(i < users.size()) {
if ((proxys.size() - 1 >= i && proxys.size() - 1 >= iProxy) || sDateiProxies.length() == 0) {
try {
String sUsername = ((String)users.get(i)).split(":")[0];
String sPasswort = ((String)users.get(i)).split(":")[1];
String ChromeDriver = Datei.Configuration("ChromeDriver");
System.setProperty("webdriver.chrome.driver", ChromeDriver);
ChromeOptions options = new ChromeOptions();
if (sDateiProxies.length() != 0) {
options.addArguments(new String[] { "--proxy-server=http://" + (String)proxys.get(iProxy) });
}
options.addArguments(new String[] { "--mute-audio" });
iProxy++;
driver.add(i, new ChromeDriver(options));
((WebDriver)driver.get(i)).manage().window().maximize();
((WebDriver)driver.get(i)).get("http://accounts.spotify.com/de/login?continue=" + sPlaylist);
while(!((WebDriver)driver.get(i)).getTitle().equals("Anmelden - Spotify")) {
Thread.sleep(5000L);
System.out.println("kk");
JavascriptExecutor js = (JavascriptExecutor)driver.get(i);
js.executeScript("window.scrollBy(0,1000)", new Object[0]);
String ElementLoginUsername = Datei.Configuration("ElementLoginUsername");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementLoginUsername)).sendKeys(new CharSequence[] { sUsername });
String ElementLoginPassword = Datei.Configuration("ElementLoginPassword");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementLoginPassword)).sendKeys(new CharSequence[] { sPasswort });
String ElementLoginButten = Datei.Configuration("ElementLoginButten");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementLoginButten)).click();
// System.out.println("hat sich angemeldet!");
// bricht nach x mal die cookiesuche ab // Nur wenn ohne Proxy dann kommt Cookieabfrage
int j = 0;
while(j < 3) {
try {
// System.out.println("Versuch ElementCookieButton...");
Thread.sleep(1000);
String ElementCookieButton = Datei.Configuration("ElementCookieButton");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementCookieButton)).click();
// System.out.println("Versuch ElementCookieButton ERFOLGREICH");
break;
}catch(Exception e) {
try {
// System.out.println("catch block - Versuch ElementCookieButton2");
Thread.sleep(1000);
String ElementCookieButton2 = Datei.Configuration("ElementCookieButton2");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementCookieButton2)).click();
// System.out.println("catch block ende - Versuch ElementCookieButton2 ERFOLGREICH");
break;
}catch(Exception e2) {
// System.out.println("ElementCookieButton2 auch Exception, beginne von vorne while");
j++;
}
}
}
String p = "";
if (sDateiProxies.length() != 0) {
p = String.valueOf(String.valueOf((sDateiProxies.length() != 0))) + ": " + (String)proxys.get(iProxy - 1);
} else {
p = String.valueOf((sDateiProxies.length() != 0));
}
JTableRow.add(String.valueOf(i), sUsername, p);
}
}catch(Exception e2) {
i--;
}
i++;
}
System.out.println("while wird jetzt gebreaked!");
break;
}[/CODE]
Hier in zeile 9 wurde einfach nach dem exportieren eine if abfrage aus der while schleife.
[CODE lang="java" title="Code aus Java Decompiler" highlight="9,"]public static void Start(String sDateiUser, String sDateiProxies, String timetoplay, String sPlaylist) throws InterruptedException {
ArrayList<String> users = new ArrayList<>();
ArrayList<String> proxys = new ArrayList<>();
users = Datei.Lesen(sDateiUser);
if (sDateiProxies.length() != 0)
proxys = Datei.Lesen(sDateiProxies);
int i = 0;
int iProxy = 0;
if (i < users.size()) {
if ((proxys.size() - 1 >= i && proxys.size() - 1 >= iProxy) || sDateiProxies.length() == 0) {
try {
String sUsername = ((String)users.get(i)).split(":")[0];
String sPasswort = ((String)users.get(i)).split(":")[1];
String ChromeDriver = Datei.Configuration("ChromeDriver");
System.setProperty("webdriver.chrome.driver", ChromeDriver);
ChromeOptions options = new ChromeOptions();
if (sDateiProxies.length() != 0)
options.addArguments(new String[] { "--proxy-server=http://" + (String)proxys.get(iProxy) });
options.addArguments(new String[] { "--mute-audio" });
iProxy++;
driver.add(i, new ChromeDriver(options));
((WebDriver)driver.get(i)).manage().window().maximize();
((WebDriver)driver.get(i)).get("http://accounts.spotify.com/de/login?continue=" + sPlaylist);
while (!((WebDriver)driver.get(i)).getTitle().equals("Anmelden - Spotify")) {
Thread.sleep(5000L);
System.out.println("kk");
JavascriptExecutor js = (JavascriptExecutor)driver.get(i);
js.executeScript("window.scrollBy(0,1000)", new Object[0]);
String ElementLoginUsername = Datei.Configuration("ElementLoginUsername");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementLoginUsername)).sendKeys(new CharSequence[] { sUsername });
String ElementLoginPassword = Datei.Configuration("ElementLoginPassword");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementLoginPassword)).sendKeys(new CharSequence[] { sPasswort });
String ElementLoginButten = Datei.Configuration("ElementLoginButten");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementLoginButten)).click();
int j = 0;
while (j < 3) {
try {
Thread.sleep(1000L);
String ElementCookieButton = Datei.Configuration("ElementCookieButton");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementCookieButton)).click();
break;
} catch (Exception e) {
try {
Thread.sleep(1000L);
String ElementCookieButton2 = Datei.Configuration("ElementCookieButton2");
((WebDriver)driver.get(i)).findElement(By.xpath(ElementCookieButton2)).click();
break;
} catch (Exception e2) {
j++;
}
}
}
String p = "";
if (sDateiProxies.length() != 0) {
p = String.valueOf(String.valueOf(String.valueOf((sDateiProxies.length() != 0)))) + ": " + (String)proxys.get(iProxy - 1);
} else {
p = String.valueOf((sDateiProxies.length() != 0));
}
JTableRow.add(String.valueOf(i), sUsername, p);
}
} catch (Exception e2) {
i--;
}
i++;
}
System.out.println("while wird jetzt gebreaked!");
}
Thread.sleep(1000L);
int x = 0;
while (x <= i - 1) {
try {
int AktuelleZeit = 0;
Thread.sleep(500L);
Play(driver.get(x));
AktuelleZeit = Integer.valueOf(getPlaytime(driver.get(x)).replace(":", "")).intValue();
x++;
break;
} catch (Exception e2) {
int AktuelleZeit = 0;
Thread.sleep(500L);
try {
Play2(driver.get(x));
AktuelleZeit = Integer.valueOf(getPlaytime(driver.get(x)).replace(":", "")).intValue();
break;
} catch (Exception exception) {}
}
}
while (true) {
x = 0;
while (x <= i - 1) {
try {
int AktuelleZeit = Integer.valueOf(getPlaytime(driver.get(x)).replace(":", "")).intValue();
if (AktuelleZeit >= Integer.valueOf(timetoplay.replace(":", "")).intValue()) {
Skip(driver.get(x));
System.out.println("song wurde geskipppt jetzt folgt getsong!");
JTableRow.plus(x, getSong(driver.get(x)));
System.out.println("vor der getplaytime while schleife");
while (Integer.valueOf(getPlaytime(driver.get(x)).replace(":", "")).intValue() > 0)
Thread.sleep(1000L);
}
x++;
} catch (Exception e) {
Thread.sleep(1000L);
}
}
}
}[/CODE]
Kann mir jemand sagen wieso er nach dem export die while schleife in eine if anweisung ändert?
Ich habe dieses Problem nirgends im Internet gefunden.
Ich hoffe jemand kann mir helfen.
Eckdaten:
Ich nutze wie gesagt Eclipse
Version: 2020-12 (4.18.0)
Build id: 20201210-1552
jdk 13.0.2
Windows 10