java api pro generování zdrojových souborů java
<p>hledám rámec pro generování zdrojových souborů java.</p><p>něco jako následující api:</p><pre><code>x clazz = something.createclass("package name", "class name"); clazz.addsuperinterface("interface name"); clazz.addmethod("method name", returntype, argumenttypes, ...); file targetdir = ...; clazz.generate(targetdir); </code></pre><p>pak by měl být zdrojový soubor java nalezen v podadresáři cílového adresáře.</p><p>ví někdo takový rámec?</p><hr><p><strong>upravit</strong>:</p><ol> <li>opravdu potřebuji zdrojové soubory.</li> <li>také bych chtěl vyplnit kód metod.</li> <li>hledám abstrakci na vysoké úrovni, ne přímou manipulaci/generování bytecode.</li> <li>potřebuji také &quot;strukturu třídy&quot; ve stromu objektů.</li> <li>problémová doména je obecná: generovat velké množství velmi odlišných tříd bez „společné struktury&ldquo;.</li> </ol><hr><p><strong>solutions</strong><br> zaslal jsem 2 odpovědi na základě vašich odpovědí ... <a href="https://stackoverflow.com/questions/121324/a-java-api-to-generate-java-source-files#136010">s codemodel</a> a <a href="https://stackoverflow.com/questions/121324/a-java-api-to-generate-java-source-files#136016">s eclipse jdt</a> .</p><p>použil jsem <a href="http://codemodel.java.net/">codemodel</a> v mém řešení :-)</p>
<p>sun poskytuje rozhraní api nazvané codemodel pro generování zdrojových souborů jazyka java pomocí rozhraní api. není to nejjednodušší získat informace, ale je to tam a funguje to velmi dobře.</p><p>nejjednodušší způsob, jak toho dosáhnout, je součástí jaxb 2 ri - generátor schématu xjc-to-java používá codemodel pro generování svého zdroje java a je to součást sklenic xjc. můžete jej použít pouze pro codemodel.</p><p>chyť to z <a href="http://codemodel.java.net/">http://codemodel.java.net/</a> </p>
Tak ono zalezi o jakou dokumentaci ti jde. Muzes mit dokumentaci ve forme JavaDoc pro Javovske aplikace. K tomu ti staci vyvojovy nastroj, ktery vyvojari uz pouzivaji. Lze z toho generovat html stranky. Toto je dokumentace pro vyvojare. (IMHO javadoc ale obecne komentare a poznamky v kodu jsou musthave, at uz nejakou dokumentaci vubec planujete delat nebo ne ;) )Testy jsou z urciteho pohledu taky dokumentace. Dokumentuji, jak urcite casti maji fungovat, jake jsou okrajove podminky, a co to delat nema.Pokud mas na mysli napr user guide, nebo architecture, security, maintenance/support a podobne, tak nato muzes pouzit treba LibreOffice s podporou nastroju pro tvorbu napr. UML diagramu, jako treba class diagram. Tady mas moznosti jako EnterpriseArchitect (placeny, ale existuje i spousta free variant). Je toho spousta. Nebo muzes pouzit nejaka online reseni (i v ramci intranetu), jako napr. wiki, Confluence, E-share, GitHub (muzes mit interni/privatni instalaci, GitHub ma svoji vlastni wiki) co jsem slyšel, tak existuje skript pro příkazovou řádku, co to udělá přes LibreOffice. Mrkni na:[https://sourceforge.net/projects/jodconverter/](https://sourceforge.net/projects/jodconverter/?source=recommended)nebo<http://oooconv.free.fr/batchconv/batchconv_en.html> Pravděpodobně budete chtít používat [Eclipse C / C ++ Development Nástroje (CDT)](http://www.eclipse.org/cdt/) plugin. <p>ubuntu obsahuje gnu tar, který rozeznává formát sám! jeden příkaz pracuje s jakoukoli podporovanou kompresní metodou na <a href="http://www.gnu.org/software/tar/manual/tar.html#sec131">manuální</a> .</p><pre><code>tar xf archive.tar.xz tar xf archive.tar.gz tar xf archive.tar </code></pre><p>atd. pokud dehet dává <code>cannot exec</code> chyba, možná budete muset <code>sudo apt install xz-utils</code> za prvé.</p> Nejlépe v programu, ve kterém byl vytvořen. Určitě se o tom dočteš tam, kde jsi soubor sehnal. 1) JAR je archv s tou aplikací , jad může být pouze "zástupcem''2) každý výrobce Javu implementoval jinak proto krom rozlišení se rozlišoval ještě i výrobce <p>použít <a href="http://msdn.microsoft.com/en-us/library/system.io.stringwriter.aspx"><code>stringwriter</code></a> namísto souboru <a href="http://msdn.microsoft.com/en-us/library/system.io.streamwriter.aspx"><code>streamwriter</code></a> :</p><pre><code>public static string serializeobject&lt;t&gt;(this t toserialize) { xmlserializer xmlserializer = new xmlserializer(toserialize.gettype()); using(stringwriter textwriter = new stringwriter()) { xmlserializer.serialize(textwriter, toserialize); return textwriter.tostring(); } } </code></pre><p>poznámka: je důležité použít <code>toserialize.gettype()</code> namísto <code>typeof(t)</code> v konstruktoru xmlserializer: pokud použijete první, kód pokrývá všechny možné podtřídy <code>t</code> (které jsou pro metodu platné), zatímco druhý z nich selže při předávání typu odvozeného z <code>t</code>. zde je odkaz s nějakým příkladem kódu, který motivuje toto prohlášení, s <code>xmlserializer</code> házením <code>exception</code>, když je <code>typeof(t)</code> použito, protože předáte instanci odvozeného typu metodě, která volá serializeobject, který je definované v základní třídě odvozeného typu: <a href="http://ideone.com/1z5j1">http://ideone.com/1z5j1</a> .</p><p>ideone také používá mono ke spuštění kódu; skutečný <code>exception</code> byste dostali pomocí runtime microsoft .net má jiný <code>message</code> než ten, který je zobrazen na ideone, ale to selže stejně.</p> [Android vestavby wiki](http://groups.google.com/group/android-internals) je dobrým výchozím bodem, a zahrnuje [odkaz](http://benno.id.au/blog/2007/11/13/android-native-apps) vysvětluje, jak sestavit jednoduché nativních aplikací.


[ScratchBox](http://www.macrobug.com/blog/2007/11/25/using-scratchbox-to-build-complex-arm-binaries-for-android/) se zdá být cesta k sestavení složitějších aplikací a knihoven, jak asi víte už. Osobně bych doporučoval kontaktovat ty lidi dostat vliv na projektu OpenSSL. Schémata neexistují v podobě XML souboru. Schémata jsou závislé na tom, co UI třídy váš program používá. Je tu něco lepší diskuze [zde](http://groups.google.com/group/android-developers/browse_frm/thread/d85b6c2d0e301126/8dbbcb11543672e5?lnk=gst&q=schema+exist#8dbbcb11543672e5) . Podívejte se na SubWCRev - <http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html>


Čísla sestavení verze jsou obvykle v AssemblyInfo.cs