以下脚本适用于 Ubuntu,但不适用于 Mac。为什么?如何编辑它以便它也能在那里工作?
#!/bin/sh
v=1.1
test_file="Test10.java"
jar_file="dp4j-$v-jar-with-dependencies.jar"
curl -O "http://repo2.maven.org/maven2/com/dp4j/dp4j/$v/$jar_file"
# Start
cat > $test_file << __EOF__
class T10 {
private static void p(int i, Double d, String... s){}
}
public class Test10{
@com.dp4j.InjectReflection
public void t() {
T10.p(1,new Double(2),"hello", "reflection");
}
}
__EOF__
cat $test_file
cmd="javac -Averbose=true -cp $jar_file $test_file"
echo $cmd
$cmd
Mac 上的输出:
$ sudo ./TESTDRIVE
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 341k 100 341k 0 0 1516k 0 --:--:-- --:--:-- --:--:-- 3248k
class T10 {
private static void p(int i, Double d, String... s){}
}
public class Test10{
@com.dp4j.InjectReflection
public void t() {
T10.p(1,new Double(2),"hello", "reflection");
}
}
javac -Averbose=true -cp dp4j-1.1-jar-with-dependencies.jar Test10.java
error: error reading dp4j-1.1-jar-with-dependencies.jar; cannot read zip file
...
$ md5 dp4j-1.1-jar-with-dependency.jar MD5 (dp4j-1.1-jar-with-dependency.jar) = eb04d0d357fd861ac414fde7d3530119
答案1
答案2
您是否检查过是否确实获得了 .jar 文件?许多下载链接都会静默重定向到文件实际所在的位置,因此您可能只下载了Location: ...
CURL 未遵循的重定向的几个字节。
在文本编辑器中打开 .jar 文件并查看您获得的内容。真正的 .jar 应该以“PK”开头(因为它是 .zip 文件)。