To solve the multi-objective flexible job shop scheduling problem, an improved non-dominated sorting genetic algorithm is proposed. Multi-objective mathematical model is established, four objectives, makespan, maximal workload, total workload and total tardiness are considered together. In this paper a dual coding method is employed, and infeasible solutions were avoided by new crossover and mutation methods. Pareto optimal set was taken to deal with multi-objective optimization problem, in order to reduce computational complexity, the non-dominated sorting method was improved. The niche technology is adopted to increase the diversity of solutions, and a new self adaptive mutation rate computing method is designed. The proposed algorithm is tested on some instances, and the computation results demonstrate the superiority of the algorithm.