An 18-year-old Grand Junction High School student has been charged with a felony after police said he had two knives in his backpack at school.