我在Ubuntu 16.04工作。当我使用sudo apt list --installed命令检查时,我需要安装gradle并安装gradle但是当我使用gradle -version命令时它显示以下错误, JAVA_HOME设置为无效目录:/ usr / lib / jvm / java-8-oracle / jre / bin / java
在sudo vim / etc / environment文件中,
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
http_proxy="http://username:password@IP:port no/"
https_proxy="https://IP:port no/"
ftp_proxy="ftp://IP:port no/"
我不知道我犯了哪些错误。请帮帮我。
感谢。
答案 0 :(得分:5)
在64位openSuse 64 42.1框中;
media:/mnt/pool
提供的;
/mnt/media:/mnt/pool:rshared
但;
readlink -f $(which java)
是有效的路径并允许java模拟器运行。
所以我认为我们必须手动浏览我们的文件系统并查看选择的路径。
答案 1 :(得分:1)
今天我遇到了这个问题。我正在使用您的 linux 发行版附带的默认 java(因此在我的情况下是 linux mint)。
import 'package:flutter_polyline_points/flutter_polyline_points.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:location/location.dart';
import 'package:flutter/material.dart';
import 'package:routelines/components/map_pin_pill.dart';
import 'dart:async';
import 'package:routelines/models/pin_pill_info.dart';
const double CAMERA_ZOOM = 16;
const double CAMERA_TILT = 80;
const double CAMERA_BEARING = 30;
const LatLng SOURCE_LOCATION = LatLng(22.993966, 72.498510);
const LatLng DEST_LOCATION = LatLng(23.014672, 72.530558);
class DirectionPage extends StatefulWidget {
@override
State<StatefulWidget> createState() => DirectionPageState();
}
class DirectionPageState extends State<DirectionPage> {
Completer<GoogleMapController> _controller = Completer();
Set<Marker> _markers = Set<Marker>();
Set<Polyline> _polylines = Set<Polyline>();
List<LatLng> polylineCoordinates = [];
PolylinePoints polylinePoints;
String googleAPIKey = "<YourKey>";
BitmapDescriptor sourceIcon;
BitmapDescriptor destinationIcon;
LocationData currentLocation;
LocationData destinationLocation;
Location location;
double pinPillPosition = -100;
int polyId = 1;
PinInformation currentlySelectedPin = PinInformation(
pinPath: '',
avatarPath: '',
location: LatLng(0, 0),
locationName: '',
labelColor: Colors.grey);
PinInformation sourcePinInfo;
PinInformation destinationPinInfo;
@override
void initState() {
super.initState();
location = new Location();
setInitialLocation();
polylinePoints = PolylinePoints();
location.onLocationChanged().listen((LocationData cLoc) {
currentLocation = cLoc;
updatePinOnMap();
setPolylines();
});
setSourceAndDestinationIcons();
}
@override
void dispose() {
super.dispose();
}
void setSourceAndDestinationIcons() async {
BitmapDescriptor.fromAssetImage(
ImageConfiguration(devicePixelRatio: 2.0), 'assets/driving_pin.png')
.then((onValue) {
sourceIcon = onValue;
});
BitmapDescriptor.fromAssetImage(ImageConfiguration(devicePixelRatio: 2.0),
'assets/destination_map_marker.png')
.then((onValue) {
destinationIcon = onValue;
});
}
void setInitialLocation() async {
currentLocation = await location.getLocation();
destinationLocation = LocationData.fromMap({
"latitude": DEST_LOCATION.latitude,
"longitude": DEST_LOCATION.longitude
});
}
@override
Widget build(BuildContext context) {
CameraPosition initialCameraPosition = CameraPosition(
zoom: CAMERA_ZOOM,
tilt: CAMERA_TILT,
bearing: CAMERA_BEARING,
target: SOURCE_LOCATION);
if (currentLocation != null) {
initialCameraPosition = CameraPosition(
target: LatLng(currentLocation.latitude, currentLocation.longitude),
zoom: CAMERA_ZOOM,
tilt: CAMERA_TILT,
bearing: CAMERA_BEARING);
}
return Scaffold(
body: Stack(
children: <Widget>[
GoogleMap(
myLocationEnabled: true,
compassEnabled: true,
tiltGesturesEnabled: false,
markers: _markers,
polylines: _polylines,
mapType: MapType.normal,
initialCameraPosition: initialCameraPosition,
onTap: (LatLng loc) {
},
onMapCreated: (GoogleMapController controller) {
controller.setMapStyle(Utils.mapStyles);
_controller.complete(controller);
print("map opened");
showPinsOnMap();
}),
MapPinPillComponent(
pinPillPosition: pinPillPosition,
currentlySelectedPin: currentlySelectedPin)
],
),
);
}
void showPinsOnMap() {
if (currentLocation != null && destinationLocation != null) {
var pinPosition =
LatLng(currentLocation.latitude, currentLocation.longitude);
// print("pinPosition >> $pinPosition");
var destPosition =
LatLng(destinationLocation.latitude, destinationLocation.longitude);
sourcePinInfo = PinInformation(
locationName: "Start Location",
location: SOURCE_LOCATION,
pinPath: "assets/driving_pin.png",
avatarPath: "assets/square_pin.png",
labelColor: Colors.blueAccent);
destinationPinInfo = PinInformation(
locationName: "End Location",
location: DEST_LOCATION,
pinPath: "assets/destination_map_marker.png",
avatarPath: "assets/square_pin.png",
labelColor: Colors.purple);
_markers.add(Marker(
markerId: MarkerId('sourcePin'),
position: pinPosition,
onTap: () {
setState(() {
currentlySelectedPin = sourcePinInfo;
pinPillPosition = 0;
});
},
icon: sourceIcon));
// destination pin
_markers.add(Marker(
markerId: MarkerId('destPin'),
position: destPosition,
onTap: () {
setState(() {
currentlySelectedPin = destinationPinInfo;
pinPillPosition = 0;
});
},
icon: destinationIcon));
setPolylines();
}
}
void setPolylines() async {
List<PointLatLng> result = await polylinePoints.getRouteBetweenCoordinates(
googleAPIKey,
currentLocation.latitude,
currentLocation.longitude,
destinationLocation.latitude,
destinationLocation.longitude);
if (result.isNotEmpty) {
result.forEach((PointLatLng point) {
polylineCoordinates.add(LatLng(point.latitude, point.longitude));
});
final String polylineIdVal = 'polyline_id_$polyId';
polyId++;
final PolylineId polylineId = PolylineId(polylineIdVal);
_polylines = new Set<Polyline>();
setState(() {
_polylines.add( Polyline(
width: 6,
// set the width of the polylines
polylineId: polylineId,
geodesic: true,
consumeTapEvents: true,
color: Colors.blue,
points: polylineCoordinates));
});
}
}
void updatePinOnMap() async {
if (currentLocation != null && destinationLocation != null) {
var pinPosition =
LatLng(currentLocation.latitude, currentLocation.longitude);
// print("pinPosition >> $pinPosition");
var destPosition =
LatLng(destinationLocation.latitude, destinationLocation.longitude);
sourcePinInfo = PinInformation(
locationName: "Start Location",
location: SOURCE_LOCATION,
pinPath: "assets/driving_pin.png",
avatarPath: "assets/square_pin.png",
labelColor: Colors.blueAccent);
destinationPinInfo = PinInformation(
locationName: "End Location",
location: DEST_LOCATION,
pinPath: "assets/destination_map_marker.png",
avatarPath: "assets/square_pin.png",
labelColor: Colors.purple);
_markers.add(Marker(
markerId: MarkerId('sourcePin'),
position: pinPosition,
onTap: () {
setState(() {
currentlySelectedPin = sourcePinInfo;
pinPillPosition = 0;
});
},
icon: sourceIcon));
// destination pin
_markers.add(Marker(
markerId: MarkerId('destPin'),
position: destPosition,
onTap: () {
setState(() {
currentlySelectedPin = destinationPinInfo;
pinPillPosition = 0;
});
},
icon: destinationIcon));
CameraPosition cPosition = CameraPosition(
zoom: CAMERA_ZOOM,
tilt: CAMERA_TILT,
bearing: CAMERA_BEARING,
target: LatLng(currentLocation.latitude, currentLocation.longitude),
);
final GoogleMapController controller = await _controller.future;
controller.animateCamera(CameraUpdate.newCameraPosition(cPosition));
setState(() {
// print("pinPosition lat " + currentLocation.latitude.toString()+" long "+ currentLocation.longitude.toString());
var pinPosition =
LatLng(currentLocation.latitude, currentLocation.longitude);
sourcePinInfo.location = pinPosition;
_markers.removeWhere((m) => m.markerId.value == 'sourcePin');
_markers.add(Marker(
markerId: MarkerId('sourcePin'),
onTap: () {
setState(() {
currentlySelectedPin = sourcePinInfo;
pinPillPosition = 0;
});
},
position: pinPosition, // updated position
icon: sourceIcon));
});
}
}
}
这个命令给了我
$ whereis java
所以,我打开了 java: /usr/bin/java /usr/share/java
。有一个指向 /user/bin
的链接。我右键单击它并选择了 Java
。这将我引向follow original link
。
所以现在我知道这个 java 在哪里,我打开了我的 /usr/lib/jvm/java-11-openjdk-amd64/bin/java
文件,并编辑了 JAVA_HOME.java 文件。
所以就我而言,
.bashrc
这解决了问题。
现在,如果您正在使用其他一些 Java(假设您从 oracle 下载并解压缩了 zip 文件...),那么您必须添加该位置。例如,如果您的 java 在 ## My Custom variables
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
中,则
/home/user/.sdkman/candidates/java/current
答案 2 :(得分:0)
我看到了不匹配。在您的环境文件中,JAVA_HOME设置为&#34; / usr / lib / jvm / java-8-openjdk-amd64 /&#34;并且你提到你得到的错误与JAVA_HOME有关&#34; / usr / lib / jvm / java-8-oracle / jre / bin / java&#34;
如果您的JAVA确实安装在/ usr / lib / jvm / java-8-oracle目录中,那么您需要确保将JAVA_HOME设置为该目录。而你的PATH也反映了$ JAVA_HOME / bin。
我通常将Oracle JDK / JRE单独安装在一个单独的目录中,例如/usr/local/jdk1.8.0等。
答案 3 :(得分:0)
从文件中检查jvm安装文件夹 例如:/ usr / lib / jvm / java-12-oracle
然后在终端中运行sudo nano / etc / environment并添加该行 JAVA_HOME =“ / usr / lib / jvm / java-12-oracle”
然后打开终端并运行
export JAVA_HOME="/usr/lib/jvm/java-12-oracle"