[C# / JAVAW] ProcessStart nie uruchamia aplikacji.

[C# / JAVAW] ProcessStart nie uruchamia aplikacji.
Daniel Urbaniec
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Kraków
  • Postów:40
0

Witam.
Stworzyłem swój pierwszy projekt, który tyczy się Launchera. Jest on w całości zaprojektowany w C# oraz WPF, nie ma w nim krzty Javy.
Sugerowałem się różnymi poradnikami oraz projektami, które znalazłem w internecie.
Problem dotyczy uruchamiania gry. Cała akcja Launchera działa bez zarzutu, ale gdy dochodzi do uruchomienia gry przy kursorze pojawia się ładowanie, lecz nic więcej się nie dzieje. Sprawdzałem procesy w ProcessExplorer i po naciśnięciu guzika nie pojawia się proces "javaw.exe".

Kopiuj
    {
        string installPath = @"C:\Program Files (x86)\Minecraft Launcher\runtime\jre-x64\bin\javaw.exe";
        if (System.IO.File.Exists(installPath))
        {
            ProcessStartInfo info = new ProcessStartInfo();
            {
                 info.FileName = installPath;
                 info.CreateNoWindow = false;
                 info.Arguments = @"WSZYSTKIE ARGUMENTY UMIEŚCIŁEM PONIŻEJ NA PASTEBIN";
            };
            Process.Start(info);
        }
        else
        {
            CustomMsgBox.Show("Cannot find Java installation. Please reinstall the latest version of Java and try again.");
        }

Argumenty: https://pastebin.com/bHwuAfjx

AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
0
  1. Próbowałeś czy proces się uruchamia bez argumentów?
  2. Próbowałeś uruchomić javaw.exe z argumentami za pomocą CMD lub PowerShell?
  3. Uprawnienia do folderu? Może z Admina trzeba uruchomić launcher?
Daniel Urbaniec
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Kraków
  • Postów:40
0
AdamWox napisał(a):
  1. Próbowałeś czy proces się uruchamia bez argumentów?
  2. Próbowałeś uruchomić javaw.exe z argumentami za pomocą CMD lub PowerShell?
  3. Uprawnienia do folderu? Może z Admina trzeba uruchomić launcher?
  1. Próbowałem, proces javaw.exe nie pojawia się w ProcessExplorer. Spróbowałem również z argumentami z klasycznego MC (najnowszej wersji).
  2. Szczerze mówiąc nie za bardzo wiem jak. Tak jak mówiłem - jest to mój pierwszy projekt.
  3. Odpaliłem Launcher.exe z folderu Debug jako administrator, ale dalej nic.

Najdziwniejsze jest to, że jednak to jakieś ładowanie przy kursorze się pojawia, lecz nic się kompletnie nie dzieje.

Z góry dzięki za odpowiedź, chociaż jedna osoba próbuje coś pomóc :)

AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
0

Ad. 2.
Jeśli to Windows 10 - prawym klawiszem na Start -> Program Windows Powershell (Administrator).
Przejdź do folderu z plikiem javaw.exe komendą

Kopiuj
 cd "C:\Program Files (x86)\Minecraft Launcher\runtime\jre-x64\bin"

I uruchom komendą (razem z tą kropką i slashem)

Kopiuj
 ./javaw.exe

Jeśli proces ci się uruchomi to spróbuj z parametrami

Kopiuj
./javaw.exe "-XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Djava.library.path=C:\Users\Urban\AppData\Local\Temp\664c-d92a-c8de-08a4 -Dminecraft.launcher.brand=minecraft-launcher"...

Nie piszę całych parametrów bo nie ma sensu.

Nie wiem jak u ciebie z angielskim ale natknąłem się na taką dokumentacje. Może nie trzeba uruchamiać javaw.exe, tylko z cmd, w którym korzystając ze zmiennej środowiskowej PATH jesteś w stanie to uruchomić.

Daniel Urbaniec
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Kraków
  • Postów:40
0
AdamWox napisał(a):

Ad. 2.
Jeśli to Windows 10 - prawym klawiszem na Start -> Program Windows Powershell (Administrator).
Przejdź do folderu z plikiem javaw.exe komendą

Kopiuj
 cd "C:\Program Files (x86)\Minecraft Launcher\runtime\jre-x64\bin"

I uruchom komendą (razem z tą kropką i slashem)

Kopiuj
 ./javaw.exe

Jeśli proces ci się uruchomi to spróbuj z parametrami

Kopiuj
./javaw.exe "-XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Djava.library.path=C:\Users\Urban\AppData\Local\Temp\664c-d92a-c8de-08a4 -Dminecraft.launcher.brand=minecraft-launcher"...

Nie piszę całych parametrów bo nie ma sensu.

Nie wiem jak u ciebie z angielskim ale natknąłem się na taką dokumentacje. Może nie trzeba uruchamiać javaw.exe, tylko z cmd, w którym korzystając ze zmiennej środowiskowej PATH jesteś w stanie to uruchomić.

Po uruchomieniu PowerShell i wpisaniu komend ProcessExplorer nie wykazuje żadnej aktywności javaw.exe.
Próbowałem bez argumentów, z argumentami i kompletnie nic, null.

AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
0

Jeszcze jedno co mi do głowy przychodzi. Masz ogólnie zainstalowaną Javę? Z tego co pamiętam powinno to być (w zależności od wersji) w Program Files/Oracle/Java, albo Program Files/Java. Gdzieś tam powinien być folder bin, a w nim wszystkie pliki, między innymi javaw.exe. Widzę, że ty próbujesz uruchomić .exe z folderu z Minecrafta, a nie z folderu Javy.

Daniel Urbaniec
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Kraków
  • Postów:40
0
AdamWox napisał(a):

Jeszcze jedno co mi do głowy przychodzi. Masz ogólnie zainstalowaną Javę? Z tego co pamiętam powinno to być (w zależności od wersji) w Program Files/Oracle/Java, albo Program Files/Java. Gdzieś tam powinien być folder bin, a w nim wszystkie pliki, między innymi javaw.exe. Widzę, że ty próbujesz uruchomić .exe z folderu z Minecrafta, a nie z folderu Javy.

Próbowałem również normalnie.
Odpowiednio do "\Minecraft Launcher\runtime\jre-x64" odpaliłem javaw.exe z folderu C:\Program Files\Java\jre1.8.0_211 i dalej nic.

AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
0

Z tego co tutaj Difference between java/javaw/javaws jest napisane wynika, że javaw.exe jest tym samym co java.exe ale bez okna konsoli, czyli nie pokaże ci błędów wywołania. Spróbuj dla testów zamiast javaw.exe uruchomić java.exe i co pokaże ci konsola. Myślę, że na początek zrób to za pomocą Powershella, aby móc zobaczyć błędy o ile jakiekolwiek będą.

Daniel Urbaniec
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Kraków
  • Postów:40
0
AdamWox napisał(a):

Z tego co tutaj Difference between java/javaw/javaws jest napisane wynika, że javaw.exe jest tym samym co java.exe ale bez okna konsoli, czyli nie pokaże ci błędów wywołania. Spróbuj dla testów zamiast javaw.exe uruchomić java.exe i co pokaże ci konsola. Myślę, że na początek zrób to za pomocą Powershella, aby móc zobaczyć błędy o ile jakiekolwiek będą.

Po wprowadzeniu ./java.exe wyskakuje:

Kopiuj
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)
where options include:
    -d32          use a 32-bit data model if available
    -d64          use a 64-bit data model if available
    -server       to select the "server" VM
                  The default VM is server.

    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  A ; separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D<name>=<value>
                  set a system property
    -verbose:[class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:<value>
                  Warning: this feature is deprecated and will be removed
                  in a future release.
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -no-jre-restrict-search
                  Warning: this feature is deprecated and will be removed
                  in a future release.
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions with specified granularity
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions with specified granularity
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:hprof
                  see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument
    -splash:<imagepath>
                  show splash screen with specified image
See http://www.oracle.com/technetwork/java/javase/documentation/index.html for more details.

Po wprowadzeniu ./java.exe "argumenty" wyskakuje:

Kopiuj
Error: Could not find or load main class +

Dostałem również propozycję skorzystania z lib https://github.com/hawezo/MojangSharp oraz https://github.com/AlphaBs/MinecraftLauncherLibrary.

AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
1

Jeśli są biblioteki to pierwszorzędnie korzystasz z biblioteki. Jeśli któraś z tych dwóch rozwiążuje twój problem to, według mnie, szkoda tracić czasu na drążenie czemu z pomocą javaw.exe czy java.exe nie działa.

Daniel Urbaniec
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Kraków
  • Postów:40
1
AdamWox napisał(a):

Jeśli są biblioteki to pierwszorzędnie korzystasz z biblioteki. Jeśli któraś z tych dwóch rozwiążuje twój problem to, według mnie, szkoda tracić czasu na drążenie czemu z pomocą javaw.exe czy java.exe nie działa.

Z tego co odpalałem debugowanie to działa bardzo fajna biblioteka od koreańczyka AlphaBs z Githuba.
Ma dużo opcji do wyboru, których kod mogę dopasować do przycisków i funkcji w moim Launcherze.
Dodatkowo pobiera dane z json, także to już w ogóle jest na +.

Daniel Urbaniec
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Kraków
  • Postów:40
0
[AdamWox]

W każdym razie dzięki za pomoc.
Chociaż jeden coś próbował pomóc :)

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)