[C# / JAVAW] ProcessStart nie uruchamia aplikacji.

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".

    {
        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

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?
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 :)

0

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

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

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

 ./javaw.exe

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

./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ć.

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ą

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

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

 ./javaw.exe

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

./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.

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.

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.

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ą.

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:

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:

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.

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.

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 +.

0
[AdamWox]

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1