Nejste přihlášen/a.

Přihlásit se do poradny

 

Java - kompilace

Od: fatalwir® odpovědí: 22 změna:
avatar fatalwir

Zdravím. Z minecraft serveru jsem si vytáhnul soubor .class. Ten jsem si nějakým internetovým dekompilérem převedl na .java. Upravil jsem v tom pár textů a potřebuji to dostat zpátky do .class. Jak se to dá udělat? Nejlépe bez jakékoli instalace čehokoli.
Díky

 

 

22 odpovědí na otázku
Řazeno dle hodnocení

 

 

dzordz*
hodnocení

1x

oracle.com/... Všechno v jednom, ale tahá to ztama fakt pomalu, spíš podle názvu souboru najít nějakej mirror, a nainstalovaný to pak má skoro giga. Potom použijete jednoduše javac.exe xxx.java, vyplivne to stejně pojmenovanej class. S tím pak viz dále.

Nebo compilr.com, novej prázdnej projekt, vložit do něj ten .java, zkompilovat a stáhnout, podle nastavení vypadne buď zip s .class, nebo .jar, z toho to zjevně taky umíte vydolovat. Pak jen použijete jar znova, s přepínačem u, a nahradíte ten starej class soubor v původním archivu souborem novým, nejspíš jar.exe uf craftbukkit.jar xxx.class

 

mikycz*
hodnocení

0x

Čau, tady Kakaku123 (z GT) Moc tomu nerozumím, zkus to prosímtě napsat trošku přesnějš.

hodnocení

Nazdar :D
Prostě jsem vytáhl z craftbukkit.jar soubor s koncovkou .class. Když jsem to otevřel ve wordpadu tak to bylo nečitelný, tak jsem to dekompiloval a vypadl mi z toho jakýsi java text. Ty hlášky jak tam jsou (joined the game., . . .) tak jsem si přepsal na český hlášky a teď to zase potřebuju nacpat zpátky do craftbukkit.jar.
Nebo jestli víš jiný způsob jak to počeštit? (asi pluginama to půjde co)

 

hop®
hodnocení

0x
avatar hop

Čau Fatálku, brácha mýho kámoše tomu prej docela rozumí, chceš na toho kámoše kontakt? ;):-P*haha*

hodnocení

Jestli si ze mě děláš srandu a myslíš tím mého bráchu tak kontakt opravdu nepotřebuju. ;)

hop®

Jj,,, *smich*

Ale aspoň jsem dotaz trošku aktualizoval, aby neskončil v propadlišti dějin...;)

 

mikycz*
hodnocení

0x

:D tak to ti neporadím

 

charlies*
hodnocení

0x

Co kdyby jsi sem ten .java zkusil nahrát? Řekl bych, že bez nějakého kompilátoru to nepůjde...

hodnocení

tu to máš uloz.to/...

doplněno 12.04.12 23:00:

PS.: já neříkal že to chci bez kompilátoru ale že si žádnej nechci instalovat do PC. Tím jsem měl na mysli jestli není nejaký online

charlies*

Toho jsem se bál. On tam používá svoje třídy, ke kterým já nemám přístup. Takže by jsi musel převést víc těchto souborů a já ti nedokážu říct, jestli jich je 5 nebo 1000. Zkusil bych se podívat po jiné možnosti překladu. Nebo možná někdo zná nějaký způsob, jak toto obejít. Javu zas tak dokonale neznám.

hodnocení

můžu ti poslat celej .jar soubor

charlies*

Tak jako můžeš, ale neručim, že s tím něco půjde jednoduše udělat.

hodnocení

uloz.to/...
když se ten .jar otevře ve winRARu tak můj potřebný soubor je ve složce net/minecraft/server/ServerConfigurationManager.class
a v něm potřebuju nahradit hlášky:
joined the game za se pripojil do hry
left the game za se odpojil

dzordz*

Ráno je moudřejší večera, jedno rychlé řešení z kategorie prasáckých ;)

uloz.to/...

Server se i po úpravě spustí, ale co to udělá, až to bude mít vypsat ty stringy, si moc jistej nejsem, maximálně to spadne :)

charlies*

Jen ze zvědavosti, co jsi s tím provedl? *smich* Já jsem na to večer koukal. Našel jsem program, který celý .jar dekompiluje, ale pak při kompilaci to hlásilo chyby, kde by podle mě nemělo, ale zas tak moc jsem to nezkoumal.

hodnocení

tak jdu zkoušet to jsem zvědav

doplněno 13.04.12 14:57:

paráda proste PARÁÁÁÁDA díky funguje to

doplněno 13.04.12 14:58:

heleď je to složitý to udělat? a udělal jsi to tím programem co jsi mi sem psal? jestli ano tak instaluju :D

dzordz*

Neudělal. Tím programem, co jsem tu psal, by to udělat šlo, kdybych javě rozuměl nebo věděl, jak to správně zkompilovat - zaboha mi to s tím dolarem v názvu nešlo (jednotlivé náhodné zdrojáky zkompilovat šly, ale zrovna tahle potvora, která byla potřeba, prostě nešla a nešla). Kdybych měl nástroj, který hromadně dekompiluje těch pět tisíc tříd naráz, všechny ty problémové identifikátory bych taky hromadně přejmenoval, tuhle jednu třídu upravil a celé to zkompiloval. Mnou vygooglený nástroj ale uměl dekompilovat jen po jednom.

Prasácké řešení proto, že jsem to jen rozbalil (jak jsem pozdějš zjistil, jar je přejmenovanej zip, ani na to není nutnej ten můj jar.exe, jak jsem psal) a tu .class binárku otevřel hexeditorem, daný string prostě přepsal a doplnil mezerama. Pak jen .class narvat zpátky a nahradit jím ten původní.

String by se moh i ukončit dřív, aby za textem "se připojil" nebyly mezery navíc, ale kdo ví, jestli by to pak šlo. A kdo ví, co by se stalo, kdyby původní řetězec byl kratší než nový, takže by se musela změnit velikost souboru.

doplněno 13.04.12 20:22:

Jestli je tohle první z mnoha úprav, který plánuješ, tak bych to tak ale udělal - rozbalit a všechno dekompilovat, nechat si to pohromadě všechno ve zdrojácích, dělat úpravy a vylepšovat, a čas od času to sestavit dohromady a spustit.

Náhodou ten server není open source, že by se to třeba dalo stáhnout rovnou? :)

charlies*

Jen tak mimochodem, tento program zvládne celý .jar:

java.decompiler.free.fr/...

 

dzordz*

Ííínéé, přesně ten sem použil :) Asi s tím neumím.

Jo, PSPad to zvládne taky.

hodnocení

Já vůl to zkusil otevřít v Borland Delphi 7 *haha*
PS.: Já bych to vzal rovnou PSPadem kdybych ho měl a já sem totiž strašně línej člověk :D

hodnocení

A konkrétně jakým programem jsi to teda otevřel "násilně"? A jestli se nemýlím tak PSPad by to měl zvládnout?

dzordz*

Tak já se přiznám, že jsem to vzdal :D

Odkazuje to na PlayerTeleportEvent$TeleportCause (nebo nějak tak) a nejde mi to zkompilovat, prostě to nenajde, nejspíš kvůli tomu dolaru. Samotná TeleportCause třída taky zkompilovat nejde (jiné, co jsem zkoušel, byly všechny ok..), jde až po přejmenování. Ale pak by se muselo změnit x dalších zdrojáků.. Nemám tu nic na hromadnou dekompilaci a po jednom to dělat nebudu :)

Podle docs.oracle.com/... jsem ani nepochopil, proč tam ten dolar vůbec je..

 

 


 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]