Kako napraviti EXE fajl(loader) od(za) JAVA klasa?

Zaključano (hard lock)
  • 10 odgovora
  • 12.958 pregleda
Kako napraviti EXE fajl(loader) od(za) JAVA klasa? 06.10.2004. u 04:27 · pre 268 meseci #1
Ok, ovo je za pocetnike kao sto sam ja, evo koda u C++ koji jednostavno mozete da prekopirate u DEV-C++ 4.9, ali pri formiranja novog projekta (c++) izaberite Windows Application.
Za sada ovo sam uradio za manje od sat vremena, znam da ce nekom trebati i manje, ali pre svega nekom ko zeli da se bavi "komercialom", tj da prodaje svoje dragoceno isporgramirane programcice u javi.

Code:

#include <windows.h>
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
char szClassName[ ] = "Java-Runer-2";
int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)

{
    HWND hwnd;
    MSG messages;
    WNDCLASSEX wincl;

    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;
    wincl.style = CS_DBLCLKS;
    wincl.cbSize = sizeof (WNDCLASSEX);
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;
    wincl.cbClsExtra = 0;
    wincl.cbWndExtra = 0;
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
    if (!RegisterClassEx (&wincl))
        return 0;

    hwnd = CreateWindowEx (
           0,
           szClassName,
           "Java-Runer-2",
           WS_OVERLAPPEDWINDOW,
           CW_USEDEFAULT,
           CW_USEDEFAULT,
           544,
           375,
           HWND_DESKTOP,
           NULL,
           hThisInstance,
           NULL
           );
    PostQuitMessage (0);
    ShellExecute(NULL, "open", "javaw.exe", "-jar test.jex", NULL, SW_SHOW);
    return 0;
}

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
        case WM_DESTROY:
            PostQuitMessage (0);
            break;
        default:
            return DefWindowProc (hwnd, message, wParam, lParam);
    }
    return 0;
}


Ova linija sluzi da bi pozvala "JAVAW.EXE -jar test.jex", tj, pokrenula na stari dobri nacin:

Code:
ShellExecute(NULL, "open", "javaw.exe", "-jar test.jex", NULL, SW_SHOW);


Prepoznajemo je, znaci da iz konzole nebismo kucali "javaw -jar test.jex".

Sta samo mi uopste postigli ovim, ovim se pokrece vas programcic, ali iz fajla (test.jex), sta je to, pa to je ustvari .JAR arhiva ili to je obicna .ZIP arhiva samo sa nekim malim izmenama, tj dopunama. O cemu (o cesmu) se radi? Prvo napravite novi direktorijum pa onda u njemu smestite vase .CLASS fajlove, pa lepo u njemu napravite novi DIR. sa nazivom "META-INF", pa u njemu smestite fajl sa nazivom "META-INF\MANIFEST.MF" koji ima sledeci sadrzaj (napomena: ovo mozete uraditi iz Notepad-a):

Code:

Manifest-Version: 1.0
Created-By: 1.4.2_04 (Sun Microsystems Inc.)
Main-Class: Test


Ono "Main-Class" je najvaznije, jer se tu upisuje ime vase main, glavne, klase ali bez nastavka tj. (.CLASS) extenzije Sad lepo izadjete iz META-INF direktorijuma pa opet iz onog vaseg (koji ste kreirali sa vasim nazivom) pa lepo ZIP-ujete ceo dir.
Sada promenite extenziju vase ZIP arhive iz (.ZIP) u (.JEX) , ovo JEX je skraceno od JavaExe, sada mozete lepo da da iskompajlitrate vas C++ exe fajl i da ga smestite u direktorijum gde je "TEST.JEX". I kao sto mozete da vidite samo pokrenite vas EXE fajl.
Eto carolije. Naravno ovo je samo 'draft' verzija, koja je inace samo pokretac, ali prva BETA verzija koja ce pakovati JEX u EXE bice oslobodjena sutra ili prekosutra, nisam siguran kad tacno jer imam dosta ucim. Ako neko ima lep predlog neka slobodno kaze, ja nisam bio aktivan na forumu odavno ali cu se malo angazovati sada.
Re: Kako napraviti EXE fajl(loader) od(za) JAVA klasa? 06.10.2004. u 16:42 · pre 268 meseci #2
ovo je valjda najgora upotreba C++a u istoriji programiranja :))
posto vidim da radis u winXPu, da li si ti uopste probao da kliknes na izvrsni JAR?
predlazem ti da za slicne "probleme" ne koristis objektno orjentisane programske jezike...

Citat:

Za sada ovo sam uradio za manje od sat vremena, znam da ce nekom trebati i manje

najuzaludnije bacenih sat vremena.

Citat:

ali prva BETA verzija koja ce pakovati JEX u EXE bice oslobodjena sutra ili prekosutra, nisam siguran kad tacno jer imam dosta ucimv

jedva cekam da vidim tu BETA verziju ... :)

nemoj da se ljutis, i tebi ce ovo sve biti smesno jednog dana...
Re: Kako napraviti EXE fajl(loader) od(za) JAVA klasa? 07.10.2004. u 16:57 · pre 268 meseci #5
ej mare ovo je nije bas kao sto sam se nadao, cuo sam da si je prodao, onda sigurno vredi, nadam se da je full verzija ok :)
pozdrav samo cepaj ne osvrci se na "pse koji laju" oni rade za tebe
i ako ti treba pomoc samo kazi ;)
Re: Kako napraviti EXE fajl(loader) od(za) JAVA klasa? 07.10.2004. u 17:03 · pre 268 meseci #6
@silja_011:
Pa ako već fake-uješ svoje podatke, možeš makar koristiti proxy da bude MALKO uverljivije.


[root@mybox root]# traceroute 69.33.143.1
traceroute to 69.33.143.1 (69.33.143.1), 30 hops max, 38 byte packets
1 192.168.210.1 (192.168.210.1) 13.898 ms 6.624 ms 7.731 ms
2 82.117.210.1 (82.117.210.1) 8.480 ms 8.649 ms 8.732 ms
3 195.178.35.177 (195.178.35.177) 55.510 ms 59.924 ms 17.954 ms
4 t2a5-p10-0.de-fra.eu.bt.net (166.49.148.137) 40.942 ms 42.117 ms 40.948 ms
5 ixp1-p8-0.de-fra.eu.bt.net (166.49.163.182) 68.968 ms 65.724 ms 40.950 ms
6 de-cix.fra.above.net (80.81.192.226) 77.938 ms 57.910 ms 86.944 ms
7 so-0-0-0.cr2.fra1.de.above.net (208.184.102.142) 58.941 ms 61.914 ms 64.945 ms
8 pos11-0.mpr2.lhr1.uk.above.net (64.125.29.149) 265.301 ms 175.913 ms 215.922 ms
9 so-2-1-0.cr2.lhr3.uk.above.net (208.184.231.65) 70.954 ms 64.908 ms 152.936 ms
10 so-0-0-0.cr1.lhr3.uk.above.net (208.184.231.145) 58.950 ms 125.901 ms 71.946 ms
11 so-7-0-0.cr1.dca2.us.above.net (64.125.31.186) 133.935 ms 151.900 ms 396.890 ms
12 so-6-0-0.cr1.iad1.us.above.net (64.125.28.126) 145.936 ms 140.935 ms 169.935 ms
13 so-3-0-0.mpr1.iad5.us.above.net (64.125.29.230) 159.919 ms 134.940 ms 131.934 ms
14 fe4-1.bbsr1.iad.megapath.net (64.124.229.37) 163.924 ms 154.913 ms 182.930 ms
15 ve120.ge0-3-0.core1.nyc.megapath.net (66.80.133.1) 177.913 ms 138.909 ms 170.901 ms
16 fe2-0.edge1.nyc.megapath.net (66.80.132.2) 147.954 ms 131.933 ms 133.930 ms
17 ip-64-7-27-74.dsl.nyc.megapath.net (64.7.27.74) 175.933 ms 159.901 ms 161.935 ms

Potpis
Putuj planeto, super smo se družili
nama je lepo, taman kako smo zaslužili!
Re: Kako napraviti EXE fajl(loader) od(za) JAVA klasa? 07.10.2004. u 17:08 · pre 268 meseci #7
Ok, ovo je poslednja opomena korisniku silja_011 aka markotasic-u da ne koristi 2 korisnicka imena na ES-u i da vodi diskusiju sam sa sobom.

ES je ozbiljan IT forum i ovakve stvari se ne tolerisu, ukoliko se nastavi takvo ponasanje silja_011 koriscnicki nalog ce biti blacklistovan.

Potpis
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
Re: Kako napraviti EXE fajl(loader) od(za) JAVA klasa? 01.05.2006. u 21:12 · pre 249 meseci #11
Ostavite temu da pociva u miru... :)

Ako ocete opet o Marku imate temu u madzone-u
Potpis
Goglasi! - Šta god da kupuješ, naći ćeš na Goglasima! Pretraga malih oglasa i eProdavnica, preko 10 milionda proizvoda.

Cityexpert.rs - Prva srpska onlajn agencija za nekretnine

ॐ

Tema je zaključana, nove poruke nisu moguće.

Premeštanje teme