Compilando usando CMake de forma manual
# cria pasta build
mkdir -p build
cd build
# executa o cmake dentro da pasta build
cmake .. -G "Unix Makefiles"
# executa o make dentro de build
make
# volta para diretório raiz do projeto
cd ..
Utilizando script shell
# Linux
$ ./compile.sh -l
# Windows
$ ./compile.sh -w
Caso apresente erro de formatação de arquivos shell .sh
no Linux, usar o comando
$ sed -i 's/\r$//' scriptname.sh
Caso prefira, no ambiente Windows, pode utilizar apenas o Makefile
make
Exibe o bytecode do arquivo .class (flag -e
)
# Linux e Windows
$ ./jvm_boss -e test/class/HelloJava.class
# shell script
$ ./read.sh HelloJava
Interpreta e executa o arquivo .class (flag -i
)
# Linux e Windows
$ ./jvm_boss -i test/class/HelloJava.class
# shell script
$ ./jvm.sh HelloJava
Compila arquivo .java
para .class
$ javac HelloJava.java
Mostra informações do bytecode do arquivo .class
$ javap HelloJava.class
# para mais info, flags: -c, -verbose ou -v
$ javap -v HelloJava.class
Arquivos java (.java
) encontram-se na pasta test/java
e arquivos de classe (.class
) encontram-se na pasta test/class
.
Para adicionar mais arquivos classe de teste, basta inserir o arquivo.java
no diretorio test/java
e executar na pasta raiz do projeto o comando:
# Linux e Windows
$ java test/java/arquivo.java -d test/class
# shell script
$ javac.sh arquivo
- cafebabe
- HelloJava
- Prints
- Sum
- Multiply
- int_aritmetica
- float_aritmetica
- double_aritmetica
- vetor
- vetor2
- Vector_1
- Vector_2
- multi
- Loop_for
- Loop_while
- Switch
- tableswitch
- lookupswitch
- Comparison
- Convert_int
- Convert_float
- Convert_double
- Convert_long
- methods
- MethodStatic
- MethodParams
- recursao
Até a versão Java SE 8
Analisador estático: Cppcheck 1.83
Instalação no Linux
$ sudo apt-get install cppcheck
Executando CppCheck
# arquivos especificos
$ cppcheck --verbose ./src/main.cpp
$ cppcheck --enable=warning ./src/main.cpp
# todos arquivos .cpp dentro de src
$ cppcheck --verbose --enable=warning ./src/*.cpp
# ou com shell script
$ ./check.sh -v main
$ ./check.sh -w main
$ ./check.sh -all
Analisador dinâmico: Valgrind
Instalação no Linux
$ sudo apt-get install valgrind
Executando
# com mais detalhes sobre vazamento de memória
$ valgrind –leak-check=full ./jvm_boss -e test/HelloJava.class
# shell script
$ ./valgrind.sh HelloJava
Instalação no Linux
$ git clone https://github.com/doxygen/doxygen.git
$ cd doxygen
$ mkdir build
$ cd build
$ cmake -G "Unix Makefiles" ..
$ make
$ make install
Criando arquivo de configuração do Doxygen
# Cria um arquivo de configuração do doxygen com o nome "doxygen_config"
$ doxygen -g doxygen_config
No arquivo "doxygen_config", foi necessário modificar a configuração "RECURSIVE = YES" para gerar a documentação.
Executando
# Gera ou atualiza a pasta "html" do projeto. Deve-se rodar este comando sempre que o código for atualizado
$ doxygen doxygen_config
Para visualizar a documentação gerada, basta abrir a pasta "html" do projeto e abrir o arquivo "index.html" com o navegador.