dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Spele ieksh Java

 
dev.gamez.lv Forum Index -> Programmēšana
View previous topic :: View next topic  
Author Message
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Mon Dec 25, 2006 11:14 pm    Post subject: Spele ieksh Java

Taatad atkal piekjeeros kam jaunam. Shoreiz tas ir Java. Nekad nebiju stradajis ar sho brinumu,bet viss itkaa aizleca.Uzmaaleeju siiku speeliiti ar LWJGL. Viss taka buutu kaartiibaa, bet kaa lai to appletu palaizh ieksh web. Kad palaizhu vinju ieksh NetBeans vai Eclipse, tad viss straadaa, bet tiklidz ielieku <applet> tagu ieksh html un meegjinu caur HTML palaist, taa ieksh Java console dabuuju sho exceptionu - "java.lang.NoClassDefFoundError: org/lwjgl/opengl/AWTGLCanvas". Saprotu, ka vinsh neatrod lwjgl library. Bet iisti nesaprotu kaapeec. Kas man jaadara lai vinsh atrastu (atkaartoshu - palaizhot ar Java pa taisno (no Eclipse un NetBeans) viss straadaa).
Te buus html kods -
Code:
<html>
  <head>
    <title>TestSpele</title>
  </head>
  <body>
      <h1>TestSpele</h1>
      <applet code=TestSpele.class>
     alt="Your browser understands the &lt;APPLET&gt; tag but isn't running the applet, for some reason."
        Your browser is completely ignoring the &lt;APPLET&gt; tag!     
      </applet>
  </body>
</html>

Izmekleejos google,bet atradu tikai info par sho exceptionu. Bet kaapeec vinsh neatrod sho library, iisti nesaprotu. Zinu,ka shii droshi vien ir ljoti noobiska probleema,bet nu netieku galaa.

P.S. Atver sho topiku,lai vareetu uzdot visus savus jautaajumus (un arii citi var uzdot,ja grib) par Java. Ir veel shaadas taadas probleeminjas, bet pagaidaam shii ir galvenaa.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Mon Dec 25, 2006 11:30 pm    Post subject:

Te buus noiisinaats kods manam appletam:
Code:
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Canvas;

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.AWTGLCanvas;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.GL11;

public class TestSpele extends Applet{

   public static void main(String[] args) {

   }
   
   public void init() {
      
      setLayout(new BorderLayout());
       try {
         Canvas canvas = new AppletCanvas();
         canvas.setSize(getWidth(), getHeight());
         add(canvas);
       } catch (Exception e) {
         e.printStackTrace();
       }
   }

   public void destroy() {

   }
   
   public class AppletCanvas extends AWTGLCanvas {
       
      public AppletCanvas() throws LWJGLException {
          // 60 fps
          Thread t = new Thread() {
            public void run() {
              while (true) {
                if (isVisible()) {
                  repaint();
                }
                Display.sync(60);
              }
            }
          };
          t.setDaemon(true);
          t.start();     
        }
       
        public void paintGL() {
          //te notiek ziimeeshana
     
          try {
            swapBuffers();
          } catch (Exception e) {
          }
        }   
      }
}

_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Mon Dec 25, 2006 11:41 pm    Post subject:

.class faili satur tikai vienas klases kompilējumu. Nekādas bibliotēkas netiek automātiski nekur iekļautas. Tātad tajā av iekļauta lwjgl bibliotēka (vai kā tu sauc..), tb pats .jar fails.
Tev vajadzēs sataisīt pašam savu .jar failu, kurā iekšā būs gan tava klase, gan pati lwjgl bibliotēka.

Skat, tiko gūgli užšķīru, un uzmini ko atradu:
http://lwjgl.org/wiki/doku.php/lwjgl/tutorials/applet

Eh.. un atkal nelasam dokumentāciju, ko?

Edit: un vēl - http://www.vlsolutions.com/free/jogltest/
Cik sapratu, tas lwjgl izmanto neitīvos failus (.dll) lai piekļūtu opengl, tāpēc tos browseris tik vienkārši neatļaus palaist, kas ir vaisai loģiski - lai tu ar tiem nevarētu vīrusus/trojānus izplatīt uz lietotāja datora. Tāpēc tev nāksies tos .jar failus speciāli sign'ot.
Back to top
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Mon Dec 25, 2006 11:56 pm    Post subject:

Nee vinju var gan kaa browserii palaist- vinjam ir savs installeris:
Code:
try {
      LWJGLInstaller.tempInstall();
    } catch (Exception le) {
      le.printStackTrace();
    }


[edit]Aaa nu tevis edotajajaa linkaa tas arii ir[/edit]
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Mon Dec 25, 2006 11:59 pm    Post subject:

Es jau nesaku, ka nevar. Galvenais, ko es teicu - tu browserim nemaz neiedod lwjgl bibliotēku. Tāpēc arī NoClassDefFound.
Back to top
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Tue Dec 26, 2006 12:28 am    Post subject:

Nu es biju kodu bisk par daudz noiisinaajis. Ieliekot to Instalaaciju es dabuuju to pashu erroru. Mani galvenais interesee kaa lai dabuju,ka vinsh izmanto to library. Pagoogleeju un atradu,ka ieksh eclipse ir jaanjem export/jar file.Es panjeemu, bet rezultaats tas pats. Atveeru exporteeto .jar failu,bet tur nav lwjgl library. Nu kaa lai es vinju dabuuju pie dziiviibas?
Meegjinaashu veel pagoogleet. Iisti veel neesmu iebraucis tajaa visaa. Iisti nesaprotu kaa tas viss darbojas (saprotu tikai teoreetiski, jo to es jau paspeeju izstudeet), taapeec arii laikam nevaru uzkjiileet.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Tue Dec 26, 2006 12:32 am    Post subject:

Nu ok,es vinjus sabaazu vienaa .jar failaa. Ko es dabuuju?
"java.lang.NoClassDefFoundError: org/lwjgl/opengl/AWTGLCanvas"
Tas laikam nav tas,kas vajadziigs. Kaapeec viss nevareetu buut tik elementaari kaa ar C++ (vai jebko,kas tiek assambleets uz 32 vai vairaak bitu mashiinkodu (vai 16 bitu opereetaajsisteemaam kaa Windows vai UNIX))? Vienkaarshi pieliec .exe failam blakus .dll (linux - .so utt.) un viss ir shtokos.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Tue Dec 26, 2006 12:43 am    Post subject:

Elementāri nav tāpēc, ka Java = compile once, run everywhere. A bet exe/dll/so neiet everywhere. Ar to, ka kods paliek universāls, tiek dabūta līdzi arī lielāka sarežģītība setupam. C++/"parasts" mašīnkods arī nav vienkāršs - atšķirības kompilētājos, versijās, ABI (application binary interface)... uh.. Tev laikam nav nācies vecu projektu statisku bibliotēku, kompilētu ar msvc 6, salinkot kopā ar vs2005 programmu. :) Pateikšu uzreiz - čakars pamatīgs.

Bet gan jau elementāri nav tikai pirmo reizi. Kad vienreiz aizies tad būs elementāri. DLL failu domā pirmo reizi bija elementāri uztaisīt? :)

Apskaties to manu otro linku. Tur ir strādājošs examplis (ar visu sourci) - pašā lapas apakšā - Running the applet.
Gan jau vienkārši neesi pareizi salicis vienā jar failā. Jā, nepateicu - var arī vairākus jar failus kā vienu appletu palaist, tieši kā arī tiek darīts examplī.
Back to top
View user's profile Send e-mail
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Tue Dec 26, 2006 12:49 am    Post subject:

Ou paldies tev bubu. Tiesham nebiju apskatijies tavu otro linku (domaaju,ka tas ir liidziigs pirmajam). Meegjinaaju uzguugleet kaadu straadaajoshu appletu,bet neuzguugleeju,jo visu laiku meegjinaaju atrast kaapeec ir tas exception. Tuuliit izpeetiishu un visam vajadzeetu buut skaidram.
Quote:
Bet gan jau elementāri nav tikai pirmo reizi.

Tieshi to gribeeju teikt,ka gan jau veelaak briiniishos,kaa vareeju shito nesaprast.
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Tue Dec 26, 2006 2:44 pm    Post subject:

Vakar peec paaris stundu chakareeshanaas nonaacu pie atrsisinaajuma. Pirmkaart vinjam bija vajadziigs .jar fails ar native dinamic link laibrarijiem,kurus vinsh pie palaishanas paarkopee uz lietotaaja datora. Probleema taada,ka shis .jar fails naaca liidzi tikai demo aplikaacijaam. Veel bija probleemas ar HTML failu - nepareizi ielaadeeju aplikaaciju.

Paskatijos uz to JOGl. Secinaajums - paaraak sarezhgjiits, jo vinjam tur visaadi containeri vajadziigi. Ok, sarezhgjiitiiba nav probleema, bet probleema ir tajaa, ka nekas nestraadaa. Pat vinju pashu dotais tutorial nestraadaa (palaizhhot .html uz vinju pashu servera,izmetas kljuuda). Citur tas straadaa (vecaakas versijas), bet kaa lai es iemaacos, ja ne no tutorialiem. Veelviena probleema, ka vinju laibrariji nav digitaali signed'oti (katru reizi palaizhot JOGL aplikaaciju buus dialoga logs, kuraa jaapiekrtiit,ka gribat to palaist).
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Tue Dec 26, 2006 3:58 pm    Post subject:

elvman wrote:
Probleema taada,ka shis .jar fails naaca liidzi tikai demo aplikaacijaam.

Kāpēc problēma? Tu laikam slikti lasīji šo: http://lwjgl.org/wiki/doku.php/lwjgl/tutorials/applet
Quote:
First of all a jar file that has all required natives in it, is expected to be on classpath. A simple one-shot jar could look like this (generated by the LWJGL ant build file target called applet)


Quote:
Ok, sarezhgjiitiiba nav probleema, bet probleema ir tajaa, ka nekas nestraadaa. Pat vinju pashu dotais tutorial nestraadaa

Šitam negribētos ticēt. Vairāk gan gribētos ticēt, ka vienkārši tu nemācēji pareizi to lietot. Jo ar Javu ir tāda problēma. Man ar, lai gan ne saistībā ar šo LWJGL bibliotēku, bet vispār. Kādu pusotru gadu atpakaļ nācās javā rakstīt vienu softeli - arī nočakarējos bezjēgā, sāka jau tiešām likties, ka nekas tur nestrādā, lai gan visu pareizi daru. Bet beigu beigās protams, ka pats nepareizi lietas darīju, vien grūti bija saprast ko tieši nepareizi daru. Kopš tā laika esmu vēl vairāk pārliecinājis sevi, ka negribu Javā kodēt (lai gan jau iepriekš to labi zināju ;)

Quote:
Veelviena probleema, ka vinju laibrariji nav digitaali signed'oti.
Tas jau dabiski. Jo citādi tev nāktos saignot savus jar failus ar viņu signatūri, bet tas ir pretdabiski. Signatūres dalīt pa labi un pa kreisi kuram katram nevajag. Tāpēc tev pašam viņi jāsaigno, ar tādu pašu atslēgu kā saigno sava appleta jaru. Tā tās lietas javā darās, cik man zināms.

A runājot nedaudz offtopikā par OGL kodēšanu webam - es vēl laiciņu pagaidīšu kamēr kāds (visdrīzāk Mozilla), ieviesīs OpenGL iekš SVG. Pašlaik tur ir tikai 2D.
Back to top
View user's profile Send e-mail
Display posts from previous:   
dev.gamez.lv Forum Index -> Programmēšana All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group