Hola no entiendo qué significado tiene esta línea:
int m= Integer.parseInt(arg[750]);
arg es un array o arreglo de elementos String, parámetros que se pueden pasar al método main para que se ejecute conforme a esos argumentos.
¿Pero cuál es el argumento 750?
Parece que m es la capacidad de la mochila, con lo cual lo lógico es que simplemente tengamos
int m = 750;
Que significaría que la mochila tiene una capacidad de 750 toneladas (ya es una mochila grande...).
Aparte de eso tienes un problema aquí:
static int resolverMochila ()
/* este método es de complejidad lineal con el número de
elementos que se carguen, que nunca es mayor que n */
{
int n=peso.length;
int valor=0;
int cabe=m;
int indice=0;
while (m>0 && indice<n )
En este método m hace referencia a m como variable global (static int m;) de modo que m no tiene ningún valor inicial, m vale cero como variable global y por tanto no llega a entrar en el while porque m no es mayor que cero.
¿Por qué defines m como atributo de clase o variable global y luego la vuelves a definir dentro del método main?
Salu2