quantum Skrevet 19. september 2016 Del Skrevet 19. september 2016 (endret) Unskyld hvis jeg blander inn c\virtual basic etc. Men er det slik if\else setninger funger med java developer 8 kit. Men ikke vinduer eller andre avanserte greier? Har ikke kommet å så langt om man må laste inn biblotekfiler på java eller om det gjelder kun C språk. Eller må ha prosjektfil etc. Da de andre programmene lager ofte flere filer i større pakker. Java har if-then-else hvis det der det du lurer på. Og case-switch. "Vinduer" også, og en hel del andre avanserte greier. Skal du lage programmer med grafisk brukergrensesnitt har du flere alternativer. Først Awt, som vel er utdatert i dag. Deretter Swing som du kan bruke til å lage plattformnøytrale gui, dvs. de ser "like" ut uansett om du kjører på Windows, X11 eller noe annet. Netbeans og IntelliJ bruker Swing, til sitt eget GUI. Eclipse bruker sitt eget system, kalt SWT, som baserer seg mer på å bruke det underliggende grafikksystemet. SWT kan du også bruke til dine egne applikasjoner. Da er en knapp en Windows-knapp i Windows og en X11-knapp i X11 og ser ut deretter. Siste tilskudd på stammen heter JavaFX, og er ment å ta over for Swing. FX er markup-basert, slik at du kan utforme selve gui i et xml-basert språk (a'la html). De fleste java-programmer har webgrensesnitt i dag, så man skal tenke seg om to ganger før man bestemmer hva man vil bruke. Standarden for webgrensesnitt heter JSF, men det fins mange gode alternativer, f.eks. Vaadin. Trenden peker dog mot javascript-baserte løsninger, som React og AngularJS. Bibliotekfiler har java mange av. Java har noe vi kaller et "økosystem", som består av alle biblioteker, rammeverk, applikasjonstjenere, JVM-baserte alternative programmeringsspråk mv. som kan brukes på JVM. Det er grenseløst vanskelig å holde orden på alt dette uten hjelp, og det er der dette med prosjekthåndtering kommer inn. Industristandarden i dag kalles Maven. Veldig kort fortalt bygger maven på en prosjektfil kalt pom.xml (Project Object Model), og i tillegg en god del predefinert kunnskap om hvordan forskjellige java-programmer skal bygges opp, kompileres og pakkes sammen. Her er det mye automatikk inne i bildet, f.eks. blir alle biblioteker automatisk lastet ned for deg, inklusive andre biblioteker de bibliotekene du vil bruke, avhenger av. Maven er som nevnt godt integrert med de tre mest brukte ide'ene for Java, og kan også brukes fra kommandolinja. IntelliJ har til og med sin egen Maven integrert, men den er ofte litt utdatert. Du kan installere nyere versjon fra maven.apache.org eller installere via Homebrew (siden jeg tror du bruker Mac). Det kan være lurt, siden det ofte er praktisk å kjøre Maven fra kommandolinja (f.eks. når du vil klippe og lime inn kommandoer som nedenfor ... da er det knotete å måtte oppgi stiveien til IntelliJ's egen Maven hver gang, selv om det går an). Installer først Homebrew: $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" Deretter installerer du Maven: $ brew install maven Du kan installere jdk og veldig, veldig mange andre programmer også på denne måten (inklusiver Oracle Java). Når du har gjort dette har du en Maven home-katalog i /usr/local/Cellar/maven/3.3.9/libexec og en eksekverbar link i /usr/local/bin/mvn Maven har en konstruksjon kalt arketyper som gjør det enkelt å sette opp et prosjekt basert på en prosjektmal. For å lage og kjøre en enkel web-app prøv: $ mvn -B archetype:generate -DarchetypeGroupId=com.vaadin -DarchetypeArtifactId=vaadin-archetype-application -DarchetypeVersion=7.7.1 -DgroupId=org.test -DartifactId=vaadin-app -Dversion=1.0-SNAPSHOT $ cd vaadin-app $ mvn package jetty:run Ta så en titt i browseren på http://localhost:8080/ I katalogen vaadin-app vil det ligge en fil kalt pom.xml. Denne kan du åpne med IntelliJ og titte på. Den er _nesten_ selvforklarende. Du kan stoppe det hele med Crtl-C. Alt i alt er det litt hårete å begynne å lage web-applikasjoner når man er helt fersk, så dette var bare ment å illustrere fordelen med Maven. Hvis du vil lagen en enkel hello-world-applikasjon med maven kan du bruke kommandoen $ mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false $ cd my-app bygg $ mvn package og kjør $ java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App Pom-fila som blir generert i dette tilfellet ser sånn ut <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>my-app</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project> Pom-filer kan man godt skrive for hånd, kopiere fra ett prosjekt til et annet osv. Avhengigheten til noe som kalles junit linker inn et testrammeverk. Å kjøre tester er en integrert del av maven-byggeprosessen, men det er helt frivillig å ha med testrammeverk og tester. Når du brukte quickstart-arketypen fikk du med en test på kjøpet. Den kan kjøres med kommandoen $ mvn test Mer info på https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html Endret 19. september 2016 av quantum 1 Lenke til kommentar
quantum Skrevet 19. september 2016 Del Skrevet 19. september 2016 PS Vil bare tilføye et par nyttige småting. Når jeg skrev I katalogen vaadin-app vil det ligge en fil kalt pom.xml. Denne kan du åpne med IntelliJ og titte på. Den er _nesten_ selvforklarende. så hører det med til historien at IntelliJ kan spore opp kildekoden til de (opensource) rammeverkene du bruker, blant annet utifra informasjon i Maven-systemet. Det betyr at når du ser på din egen kildekode, så er veien til å se på kildekoden til de rammeverkene du bruker (inklusive bibliotekene i JDK/JRE) veldig kort. Bare Cmd-click på de aktuelle klasse-navnene i IntelliJ. Dette er ekstremt nyttig for å forstå hva som skjer "behind the scenes". Dernest dette med debugging. Det er også ekstremt nyttig, for det skal ikke mye til før man begynner å lure på hva man holder på med. I IntelliJ (og vel også mer eller mindre tilsvarende i de andre verktøyene) setter du et breakpoint (stoppested) ved å klikke i margen utenfor den aktuelle linja hvor du ønsker programmet ditt skal pause. Stoppestedet skal da vises som en rød runding. Deretter starter du programmet med den "grønne billen" istedenfor den "grønne pila" i ide'et du bruker. Da skal programmet stoppe opp der du har angitt (dersom programflyten går innom der, det kan jo hende den ikke gjør det, dersom du f.eks. har satt breakpoint inni en if-blokk som aldri slår til eller lignende). Du kan nå se på verdier i diverse variable du har deklarert, forandre disse, og du kan kjøre programmet linje for linje, og følge med på hva som egentlig skjer. 1 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå